0Pricing
PHP Academy · Ders

Dizileri Sıralama ve Arama

sort, usort, array_search ve in_array kullanın.

Dizileri Sıralama ve Arama, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

Neden Sıralama Yapılır?

PHP, diziler için zengin bir sıralama ve arama işlevleri kümesi sunar. Anahtarları korumak, değere veya anahtara göre sıralamak ya da özel bir karşılaştırıcı kullanmak isteyip istemediğinize göre doğru işlevi seçin.

sort() ve rsort()

sort(), değerlere göre artan sıralama yapar ve diziyi yeniden indeksler; rsort() ise azalan sıralama yapar:

<?php
$nums = [3, 1, 4, 1, 5, 9, 2, 6];
sort($nums);
print_r($nums); // [1, 1, 2, 3, 4, 5, 6, 9]

$letters = ['c', 'a', 'b'];
rsort($letters);
print_r($letters); // ['c', 'b', 'a']

asort() ve arsort()

asort(), değerlere göre sıralama yaparken anahtarları korur — ilişkisel diziler için kullanışlıdır:

<?php
$scores = ['Alice' => 85, 'Bob' => 92, 'Carol' => 78];
asort($scores);
print_r($scores);
// ['Carol'=>78, 'Alice'=>85, 'Bob'=>92]

ksort() ve krsort()

ksort(), anahtarları artan sırada sıralar; krsort() ise azalan sırada sıralar:

<?php
$data = ['banana' => 2, 'apple' => 5, 'cherry' => 1];
ksort($data);
print_r($data);
// ['apple'=>5, 'banana'=>2, 'cherry'=>1]

usort() — Özel Karşılaştırıcı

usort(), kullanıcı tarafından tanımlanan bir karşılaştırma işleviyle sıralama yapar:

<?php
$people = [
    ['name' => 'Charlie', 'age' => 25],
    ['name' => 'Alice',   'age' => 30],
    ['name' => 'Bob',     'age' => 20],
];

usort($people, fn($a, $b) => $a['age'] <=> $b['age']);

foreach ($people as $p) echo $p['name'] . ' ';  // Bob Charlie Alice

in_array() — Değer Arama

in_array(), bir değerin dizide bulunup bulunmadığını denetler:

<?php
$tags = ['php', 'mysql', 'nginx'];

var_dump(in_array('php', $tags));      // true
var_dump(in_array('apache', $tags));   // false

// Third argument = strict mode (uses ===)
var_dump(in_array('1', [1, 2, 3], true));  // false (type mismatch)

array_search() — Anahtar Döndürme

array_search(), eşleşen ilk değerin anahtarını veya false değerini döndürür:

<?php
$colors = ['red', 'green', 'blue'];

$key = array_search('green', $colors);
echo $key;  // 1

$notFound = array_search('purple', $colors);
var_dump($notFound);  // bool(false)

array_unique()

Bir dizideki yinelenen değerleri kaldırın:

<?php
$ids = [1, 2, 2, 3, 3, 3, 4];
$unique = array_unique($ids);
print_r($unique); // [1, 2, 3, 4] — keys preserved!

$reindexed = array_values($unique); // re-index to 0,1,2,3

array_flip()

İlişkisel bir dizideki anahtarları ve değerleri yer değiştirin:

<?php
$map = ['a' => 1, 'b' => 2, 'c' => 3];
$flipped = array_flip($map);
print_r($flipped); // [1=>'a', 2=>'b', 3=>'c']

// Useful for O(1) lookup by value
$exists = isset($flipped[2]);  // true

array_diff() ve array_intersect()

Farkları ve kesişimleri bulmak için dizileri karşılaştırın:

<?php
$a = [1, 2, 3, 4, 5];
$b = [3, 4, 5, 6, 7];

$diff   = array_diff($a, $b);       // [1, 2] — in a but not b
$inter  = array_intersect($a, $b);  // [3, 4, 5] — in both

print_r($diff);
print_r($inter);

Özel Mantıkla İkili Arama

PHP'de yerleşik bir ikili arama yoktur; ancak bir tane uygulayabilir veya hızlı aramalar için sıralanmış anahtarları kullanabilirsiniz:

<?php
function binarySearch(array $arr, int $target): int {
    $lo = 0;
    $hi = count($arr) - 1;
    while ($lo <= $hi) {
        $mid = intdiv($lo + $hi, 2);
        if ($arr[$mid] === $target) return $mid;
        $arr[$mid] < $target ? $lo = $mid + 1 : $hi = $mid - 1;
    }
    return -1;
}
echo binarySearch([1,3,5,7,9], 7); // 3

Hızlı Kontrol

Bir dizideki eşleşen değerin anahtarını hangi PHP işlevi döndürür?

Özet: Sıralama ve Arama

Temel işlevler:

  • sort/rsort — değere göre, yeniden indeksler
  • asort/arsort — değere göre, anahtarları korur
  • ksort/krsort — anahtara göre
  • usort — özel karşılaştırıcı
  • in_array — değer varlığı denetimi
  • array_search — değerden anahtara arama
  • array_unique/array_flip/array_diff/array_intersect

Sıkça Sorulan Sorular

“Dizileri Sıralama ve Arama” dersi ücretsiz mi?

Evet — “Dizileri Sıralama ve Arama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“Dizileri Sıralama ve Arama” dersinde ne öğreneceğim?

sort, usort, array_search ve in_array kullanın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

PHP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Dizileri Sıralama ve Arama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İndeksli ve İlişkisel Diziler
  2. Çok Boyutlu Diziler
  3. Dizileri Sıralama ve Arama
  4. Dizi Dönüştürme İşlevleri
← PHP Academy Sayfasına Dön