Kelime Sıralama – String Sort

Metin alanında kelimeleri A-Z, Z-A olarak sıralatmak.

Bir textarea veya bir kaynaktan alınan satırlı kelimeleri, A-Z olarak sıralı hale getirmek gerekirse, metini, satırlarla(veya duruma göre boşluk karakteriyle) ayırıp, diziye attıktan  sonra “sort” fonksiyonu ile değerleri A-Z olarak sıralayabiliriz.

Kodlar;

index.php

$siralanacak = isset( $_POST['metin'] ) ? trim($_POST['metin']) : null;
$asil_metin = $sayfada_gosterilecek = null;
if( $siralanacak ) {
	$asil_metin = $siralanacak;
	$siralanacak = strip_tags($siralanacak);
	$parcala = explode(PHP_EOL, $siralanacak);
	if($parcala) {
		sort($parcala);
		foreach($parcala as $v) {
			if( trim($v) )
				$sayfada_gosterilecek .= $v.PHP_EOL;
		}
	}
}
include 'index-tmp.php';

Metini aldık ve explode yardımıyla satırlarına göre böldük, bu işlem bir arry dizi oluşturdu. Sonra “sort” fonksişyonu ile ilgili diziyi değerlerine göre sıradık. Z-A Olarak sıralamak istersek “sort” yerine “rsort” kullanabiliriz.

Tema dosyası, index-tmp.php

<!DOCTYPE html>
<html lang="tr-TR">
<head>
<meta charset="UTF-8">
<title>PHP-String-Sort</title>
<style type="text/css">
.container {
	width:100%;
	margin:0 auto;
}
form {
	width:250px;
	margin:0 auto;
	display:block;
	margin-top:5%;
	border:1px solid #ddd;
	padding:20px;
	background:#eee;
}
form textarea {
	width:100%;
	min-height:120px;
}
form .sonuc {
	background:#fff;
	border:1px solid #ddd;
	padding:3px;
	max-height:200px;
	overflow:auto;
}
</style>
</head>
<body>
<div class="container">
	<form method="post">
		<label for="metin">Metin <small>Enter ile ayırın</small></label>
		<textarea name="metin" id="metin"><?php echo $asil_metin?></textarea>
		<button type="submit">Sırala</button>
		<?php if($sayfada_gosterilecek):?>
		<div><br /><strong>Sonuç</strong></div>
		<div class="sonuc"><?php echo nl2br($sayfada_gosterilecek)?></div>
		<?php endif?>
	</form>
</div>
</body>
</html>

Demo | İndir

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir