PHP dizilerinde kolaylıkla arama yapmak için ipuçları ve örnek kodlar Dizi elemanlarını hızlı ve verimli bir şekilde arayın ve istediğiniz sonuçlara ulaşın Kodlama konusunda kendinizi geliştirin ve PHP dizileri hakkında daha fazlasını öğrenin
PHP, günümüzün en popüler programlama dillerinden biridir ve web uygulamaları geliştirmek için sıklıkla tercih edilir. PHP'de diziler, birçok benzer veriyi saklamak için kullanılır. Dizi içerisindeki verilerin aranması gerektiğinde ise PHP'de birçok yöntem mevcuttur. Bu yazımızda, PHP dizilerinde arama işlemleri yapmanın yöntemleri hakkında bilgi edinmenizi sağlayacağız.
PHP dizilerinde arama yapmak için en yaygın kullanılan yöntemlerden biri in_array() fonksiyonudur. Bu fonksiyon, belirtilen bir değerin, diğer bir dizi içinde bulunup bulunmadığını kontrol eder. Dizide değer bulunursa, fonksiyon true döndürür, bulunmazsa false döndürür. İkinci parametre olarak true gönderilirse, karşılaştırma işlemi sırasında veri türleri de kontrol edilir.
Diğer bir yöntem ise array_search() fonksiyonudur. Bu fonksiyon, bir değerin, belirtilen bir dizideki anahtarının döndürülmesini sağlar. Eğer parametre olarak verilen öğe dizide bulunamazsa, fonksiyon false döndürür. Eğer dizinin sıfırdan başlayan anahtarı, aranan anahtarın olmadığı bir diziye sahipse, bu fonksiyon başarısız olacaktır.
Eğer array_search() fonksiyonunu değerlerin türlerini de kıyaslamak istiyorsanız, bu seçeneğe strict modu denir. Bu seçeneği yalnızca gramer açısından doğru tip eşleşmesine izin vermek için kullanabilirsiniz.
Bunun dışında, array_keys() fonksiyonu, bir dizinin tüm anahtarlarını bir listede döndürmek için kullanılır. array_values() fonksiyonu ise bir dizinin tüm değerlerini bir listede döndürmek için kullanılır. Alternatif olarak, in_array() ve array_search() işlevlerinin yerine kullanılabilir.
Bu yöntemlerin her biri, belirli bir amaç için özelleştirilmiştir. Örneğin, bir anahtarın bulunabileceği birden fazla konum varsa, array_search() kullanmak mantıklıdır, ancak sadece belirli bir anahtarın varlığını kontrol etmek istiyorsanız in_array() kullanmak daha efektiftir.
in_array() Fonksiyonu
PHP programlama dili ile dizilerde arama işlemleri yapmak oldukça sık karşılaşılan bir ihtiyaçtır. Bunun için ise PHP dilinde bir dizi fonksiyon mevcuttur. Bunlardan ilki in_array() fonksiyonudur. Bu fonksiyon bir dizide belirli bir elemanın olup olmadığını kontrol etmek için kullanılır.
in_array() fonksiyonu, iki parametre alır. İlk parametre, aranacak elemandır ve ikinci parametre ise arama yapılacak dizidir. Fonksiyon, aranacak elemanın dizide var olup olmadığını kontrol ederek sonuç olarak true veya false değerleri döndürür.
Örnek olarak, aşağıdaki kod parçasında in_array() fonksiyonu kullanılarak 'elma' elemanının $meyveler dizisi içinde bulunup bulunmadığı kontrol edilir.
$meyveler = array("elma", "armut", "çilek");if (in_array("elma", $meyveler)) { echo "Elma bulundu!";} else { echo "Elma bulunamadı!";}
Bu örnekte, aranacak eleman "elma" ve arama yapılacak dizi $meyveler olarak belirlenmiştir. in_array() fonksiyonu, "elma" elemanını $meyveler dizisi içinde arayarak sonuç olarak true değerini döndürür. Bu nedenle ekrana "Elma bulundu!" yazısı yazdırılır.
in_array() fonksiyonu ile ilgili olarak bilinmesi gereken bir diğer detay da ikinci parametrenin sadece dizi olması gerektiğidir. Eğer ikinci parametre bir dizi değilse, fonksiyon false değerini döndürür.
Bu şekilde in_array() fonksiyonunun kullanımına dair örnekler vererek fonksiyonun nasıl çalıştığı ve sonuçları hakkında bilgi sahibi olabiliriz.
array_search() Fonksiyonu
PHP dizilerinde arama işlemleri yapmanın farklı yöntemleri bulunmaktadır. Bunlardan biri de array_search() fonksiyonudur. Bu fonksiyon, belirtilen değerin dizide bulunduğu ilk anahtarın dizinini döndürür. Eğer değer dizide bulunmazsa, false değerini döndürür.
array_search() fonksiyonu iki parametre alır. İlk parametre, aranacak değerdir. İkinci parametre ise arama yapılacak dizi ismidir.
Parametre | Açıklama |
---|---|
aranacak değer | Arayacak olan değeri ifade eder. |
arama yapılacak dizi ismi | Değerin aranacağı dizi ismini belirtir. |
Örnek olarak, aşağıdaki kodda array_search() fonksiyonu kullanılarak "elma" kelimesinin dizide kaçıncı indekste olduğu bulunmaktadır:
$dizi = array("elma", "armut", "portakal", "avokado");$sonuc = array_search("elma", $dizi);echo "Elma kelimesi " . $sonuc . " indeksinde bulundu.";
Bu kod çalıştırıldığında, "Elma kelimesi 0 indeksinde bulundu" şeklinde bir çıktı alınacaktır. Eğer aranacak kelime dizide bulunmazsa, false değeri döndürülecektir. Örnek olarak, aşağıdaki kodda "muz" kelimesi dizide bulunmadığı için false değeri döndürülecektir:
$dizi = array("elma", "armut", "portakal", "avokado");$sonuc = array_search("muz", $dizi);echo $sonuc; //false
array_search() fonksiyonu, varsayılan olarak non-strict modda çalışır. Bu, dizi elemanlarının hem değerlerinin hem de türlerinin karşılaştırılmadığı anlamına gelir. Ancak, fonksiyonun strict modunda çalışması istenirse, üçüncü bir parametre olarak true belirtilmelidir. Bu durumda, arama işlemi değerlerinin ve türlerinin tam olarak eşleşmesine dayanır.
strict modu
PHP dizilerinde arama işlemleri yapmak oldukça yaygın bir uygulamadır. Bu işlem için farklı PHP fonksiyonları kullanılabilir. Bunlardan biri de array_search() fonksiyonudur. Bu fonksiyon kullanıcının aramak istediği değeri belirleyerek, dizide var olup olmadığını kontrol eder. Bu kontrol işlemi, strict modda veya non-strict modda gerçekleştirilebilir.
Strict mod, kontrol işleminin hem değer hem de veri tipine göre yapılmasını sağlar. Dolayısıyla array_search() fonksiyonu strict modda kullanılırken, aranması gereken değerin veri tipi, dizideki değerlerin veri tipleriyle de aynı olmalıdır. Bu şekilde arama işlemi daha kesin ve doğru sonuçlar verecektir.
Örnek: | $dizi = array(1, "2", "üç"); |
---|---|
Non-strict modda (varsayılan olarak yapılır): | echo array_search("2", $dizi); // Çıktı: 1 |
Strict modda: | echo array_search("2", $dizi, true); // Çıktı: false |
Bu örnekte, $dizi
isimli dizide mevcut olan "2" değeri, non-strict modda aranarak indeksi 1 olarak döndürülmüştür. Ancak aynı işlem strict modda yapıldığında, false
değeri döndürülmüştür. Çünkü aranması gereken değer ve dizideki değerlerin veri tipleri aynı değildir.
Strict modda kullanılan array_search() fonksiyonu, kontrol işleminde sadece değerlerin değil, dizideki indekslerin de eşleşmesini arar. Bu nedenle dizide birden fazla aynı değer varsa, strict modda yapılan arama işlemi ilk eşleşmenin indeksini döndürür.
array_keys() Fonksiyonu
array_keys() fonksiyonu PHP dizileri içindeki belli bir değere karşılık gelen anahtarları bularak, bu anahtarları bir dizi olarak döndürür. Bu işlem için, dizini aramak için kullanılacak değer belirlenir. Eğer aranacak değer bulunursa, geri dönüş değerleri aranacak değerin dizi içindeki tüm anahtarları olacaktır.
Bir dizi içindeki anahtarları birleştirmek ve bu anahtarların bir listesini almak gerektiğinde, array_keys() fonksiyonu oldukça yararlıdır. Bu işlem, özellikle büyük diziler içindeki anahtarların hızlı bir şekilde bulunması gerektiğinde çok faydalıdır.
Bir dizi içindeki anahtarları elde etmek için array_keys() fonksiyonu kullanımı oldukça basittir. Bu fonksiyonun kullanımı için aranacak dizi belirtilir. İkinci bir parametre olarak ise, aranacak değer belirlenir. Bu fonksiyonun çalışma prensibi, dizideki her elemanın anahtarının aranacak değerle karşılaştırılmasıdır. Eğer eşleşme varsa, bu anahtarlar geri döndürülür.
Örneğin:
<?php | $yemekler = array("elma"=>3, "portakal"=>2, "armut"=>1); |
$keys = array_keys($yemekler, 2); | |
print_r($keys); | |
?> |
Bu örnekte, yemekler dizisi içindeki "portakal" anahtarının değeri 2 olduğundan, array_keys() fonksiyonu dizi içindeki bu anahtarın listesini döndürecektir. Geri dönen değer olan $keys değişkeni, "portakal" anahtarının listesini içerir.
array_values() Fonksiyonu
array_values() fonksiyonu, bir dizinin tüm değerlerini almak veya dizinin değerlerini yeniden numaralandırmak için kullanılır. Bu fonksiyonun kullanımı oldukça basittir ve tek bir parametre alır; dizi.
Örneğin, aşağıdaki kod, bir dizi oluşturur ve bu dizinin değerlerini yeniden numaralandırır:
$dizi = array('elma', 'armut', 'kiraz');$yenidizi = array_values($dizi);
Bu kod çalıştırıldığında, $yenidizi değişkenine şu şekilde bir dizi atanır:
array( [0] => 'elma', [1] => 'armut', [2] => 'kiraz')
Gördüğünüz gibi, array_values() fonksiyonu diziye yeni bir numaralandırma verir.
array_values() fonksiyonu ayrıca, bir dizinin sadece değerlerini almak için de kullanılabilir. Örneğin, aşağıdaki kod, dizinin sadece değerlerini başka bir değişkene atar:
$dizi = array( 'isim' => 'Ali', 'soyisim' => 'Yılmaz', 'telefon' => '555-555-1212');$sadeceDegerler = array_values($dizi);
Bu kod, sadece değerleri $sadeceDegerler değişkenine atar:
array( [0] => 'Ali', [1] => 'Yılmaz', [2] => '555-555-1212')
Bu fonksiyonun kullanımı, bir dizi işleminde oldukça yararlı ve basit bir yöntemdir.
Alternatif arama yöntemleri
Arama işlemleri, PHP dizilerinde oldukça sık kullanılan bir işlemdir. Bu işlem için in_array() ve array_search() fonksiyonları dışında da alternatif fonksiyonlar bulunmaktadır. Bu fonksiyonlar sayesinde arama işlemleri daha hızlı ve verimli bir şekilde gerçekleştirilebilir.
Bunlardan birisi array_filter() fonksiyonudur. Bu fonksiyon, dizi içindeki tüm değerleri belirli bir şarta göre filtreler. Bu sayede, aranan değerleri hızlı bir şekilde bulmak mümkündür. Ayrıca, array_diff() fonksiyonu da kullanılabilir. Bu fonksiyon, bir dizide bulunan ve başka bir dizide bulunmayan değerleri döndürür.
Bunun yanı sıra, array_intersect() fonksiyonu da farklı dizilerin ortak elemanlarını bulmak için kullanılabilir. Bu fonksiyon, iki ya da daha fazla dizide bulunan ortak elemanların yeni bir dizi olarak oluşturulmasını sağlar. Böylece, aranan değerler daha hızlı ve kolay bir şekilde bulunur.
Örneklerle arama işlemleri
PHP dizilerinde arama işlemlerinin nasıl yapılabileceğine ilişkin örneklerle bakalım. Bunun için öncelikle bir dizi oluşturalım:
$renkler = array("kırmızı", "mavi", "yeşil", "sarı", "mor");
in_array() fonksiyonu:
Bu fonksiyon, belirtilen değerin bir dizide olup olmadığını kontrol eder ve sonuç olarak bir Boolean değer döndürür. Örneğin, "kırmızı" renk dizimizde var mı yok mu kontrol edelim:
$varMi = in_array("kırmızı", $renkler);if($varMi){ echo "Kırmızı renk dizide bulundu.";} else{ echo "Kırmızı renk dizide bulunamadı.";}
Yukarıdaki kodu çalıştırdığınızda, "Kırmızı renk dizide bulundu." yazısını göreceksiniz.
array_search() fonksiyonu:
Bu fonksiyon, belirtilen değerin bir dizide nerede olduğunu bulur ve sonuç olarak o değerin indeksini döndürür. Örneğin, "yeşil" rengin dizimizde kaçıncı sırada olduğunu bulalım:
$index = array_search("yeşil", $renkler);echo "Yeşil renk, dizinin " . ($index+1) . ". sırasında bulundu.";
Yukarıdaki kodu çalıştırdığınızda, "Yeşil renk, dizinin 3. sırasında bulundu." yazısını göreceksiniz.
array_keys() fonksiyonu:
Bu fonksiyon, belirtilen değerlere ait anahtarları, bir dizi olarak döndürür. Örneğin, "sarı" ve "mor" renklerinin indekslerini bulalım:
$indeksler = array_keys($renkler, "sarı");echo "Sarı rengin bulunduğu indeksler: ";foreach ($indeksler as $indeks){ echo $indeks . " ";}$indeksler = array_keys($renkler, "mor");echo "\nMor rengin bulunduğu indeksler: ";foreach ($indeksler as $indeks){ echo $indeks . " ";}
Yukarıdaki kodu çalıştırdığınızda, "Sarı rengin bulunduğu indeksler: 3 Mor rengin bulunduğu indeksler: 4" yazısını göreceksiniz.
array_values() fonksiyonu:
Bu fonksiyon, bir dizinin değerlerini, yeni bir dizi olarak döndürür. Örneğin, $renkler dizimizi yeni bir dizi olarak oluşturalım:
$degerler = array_values($renkler);foreach ($degerler as $deger){ echo $deger . " ";}
Yukarıdaki kodu çalıştırdığınızda, "kırmızı mavi yeşil sarı mor" yazısını göreceksiniz.
PHP dizilerinde arama işlemleri yapmak bu kadar basit. Kullanacağınız fonksiyonlar, ihtiyacınıza göre değişebilir. Ancak, yukarıdaki örnekler size bu işlemleri yapmanız için yeterli bir başlangıç noktası sağlayacaktır.