+2 oy
43 Görünüm
Php kategorisinde tarafından

1|gs
2|fb
33|ts
4|bjk
5|ist
6|ank

yukarıdaki şekilde sıralanmış metin dosyasında büyükten ufağa doğru php çıktısı nasıl olabilir ?

Paylaş

1 cevap

+1 oy
(1.2k puan) tarafından

PHP'de dosya içindeki belirli bir diziyi alıp sıralamak için birkaç adımda ilerleyebiliriz. Örnek dosyanı verdiğin gibi bir metin dosyasının içeriğini sıralamak için aşağıdaki adımları takip edebiliriz:

Öncelikle, dosyadaki her bir satırı okuyacağız, ardından bu satırları bir dizi (array) içine aktaracağız. Sonrasında bu diziyi sıralayıp ekrana yazdırabiliriz. İşte adım adım çözüm:

Örnek dosya içeriği (dosya.txt):

1|gs 2|fb 33|ts 4|bjk 5|ist 6|ank

PHP Kodu:

`php
<?php
// Dosya yolunu belirleyelim
$dosyaYolu = 'dosya.txt';

// Dosya içeriğini oku
$icerik = file($dosyaYolu, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// Diziye ayıralım
$takimlar = [];

foreach ($icerik as $satir) {

// Satırı '|' karakterine göre ayıralım
list($sira, $takim) = explode('|', $satir);
// Dizinin sırasını anahtar olarak kullanmak üzere diziye ekleyelim
$takimlar[$sira] = $takim;

}

// Anahtara göre sıralama yapalım (sıra sayısına göre büyükten küçüğe)
arsort($takimlar);

// Sonuçları yazdıralım
foreach ($takimlar as $sira => $takim) {

echo "$sira|$takim\n";

}
?>
`

Açıklamalar:

  1. file() fonksiyonu, dosyadaki her bir satırı okur ve bir dizi olarak döndürür. FILE_IGNORE_NEW_LINES parametresi satır sonlarını (yeni satır karakterlerini) yok sayar, FILE_SKIP_EMPTY_LINES parametresi ise boş satırları atlar.

  2. explode() fonksiyonu, her bir satırı | karakterine göre böler ve dizinin iki elemanına ayırır: biri sıra numarası (öncelik sırası), diğeri ise takım adı.

  3. arsort() fonksiyonu, diziyi değerlerine göre azalan sırayla sıralar. Burada takım sırasını belirleyen değer (sıra numarası) büyükten küçüğe sıralanacaktır.

  4. Son olarak, sıralı diziyi foreach ile ekrana yazdırıyoruz.

Çıktı:

Yukarıdaki PHP kodu çalıştırıldığında aşağıdaki çıktıyı alırsınız:

33|ts 6|ank 5|ist 4|bjk 2|fb 1|gs

Bu şekilde, dosyanın içeriğindeki takımları sıralamış olduk.

Bu Hafta En Aktif Üyeler
    ...