Öncelikle txt dosyasından veritabanı gibi sorgu ile istediklerinizi çekemezsiniz. Bütün txt dosyasını çekip, soy ismin baş harfine göre sıralama yaparak yeni txt dosyasına kayıt edebilirsiniz. Aynı dosya üzerine kayıt tavsiye etmiyorum ilk hatada dosyanızdan olursunuz.
Yapmanız gereken tek şey dosya isimlerini ayarlamak.
<?php
//soy isimleri ayrı bir diziye al
function soyad_al($isim){
global $soyisimler;
$soyisimler[] = strrchr($isim, " ");
return $soyisimler;
}
$dosya1 = 'isimler.txt';
$dosya2 = 'siraliisimler.txt';
// isimleri array içine al
$isimler = file($dosya1);
// tüm diziye fonksiyonu uygula
array_map("soyad_al",$isimler);
// eski diziyi soyisimlere göre sırala
array_multisort($soyisimler, $isimler);
// yeni dosyayı aç ve yaz
$ac = fopen($dosya2, "wb");
foreach($isimler as $yeni_isim){
fwrite($ac,$yeni_isim);
}
fclose($ac);
?>