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 Alicein_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,3array_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]); // truearray_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); // 3Hı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 indekslerasort/arsort— değere göre, anahtarları korurksort/krsort— anahtara göreusort— özel karşılaştırıcıin_array— değer varlığı denetimiarray_search— değerden anahtara aramaarray_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
- İndeksli ve İlişkisel Diziler
- Çok Boyutlu Diziler
- Dizileri Sıralama ve Arama
- Dizi Dönüştürme İşlevleri