'array_search' ile Anahtar Arama
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 18 / 68.
in_array() bir değerin bir dizide olup olmadığını söylerken, bazen bu değerin tam olarak nerede bulunduğunu bilmeniz gerekir. array_search() fonksiyonu, bir dizide belirli bir değeri bulur ve ona karşılık gelen anahtarı veya indeksi döndürür.
Nasıl çalıştığı aşağıdadır:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // Çıktı: 2
?>Fonksiyon iki parametre alır: aradığınız değer ve içinde arama yapılacak dizi. Değer bulunduğunda, array_search() anahtarı döndürür (indeksli diziler için bu, 0'dan başlayan sayısal konumdur).
Ancak, neyin döndürüldüğü konusunda önemli bir ayrım vardır. Eğer değer bulunursa, anahtarı alırsınız. Eğer değer bulunamazsa, fonksiyon false döndürür:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // Döndürür: 2
$notFound = array_search(100, $scores); // Döndürür: false
?>Bu fonksiyon, bir öğenin konumunu veya sıralamasını belirlemeniz gerektiğinde, örneğin bir oyuncunun liderlik tablosundaki yerini bulmak veya daha ileri işlemler için belirli bir öğenin dizinini (index) tespit etmek gibi durumlarda özellikle yararlıdır.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
Kolayİki girdi alacaksınız: JSON formatında bir ürün adları dizisi ve aranacak bir ürün adı. Her iki girdiyi de okuyun, JSON dizesini bir diziye dönüştürün, ürünün dizideki konumunu bulmak için array_search() fonksiyonunu kullanın ve sonucu yazdırın. Ürün bulunursa, dizin (index) konumunu yazdırın. Ürün bulunamazsa, "Product not found" yazdırın.
Girdi formatı: İki satır - ilk satır bir JSON dizisi içerir (örnek: ["laptop","mouse","keyboard","monitor"]), ikinci satır aranacak ürün adını içerir
Beklenen çıktı: Ürünün sayısal dizin konumu (0'dan başlayarak) veya ürün dizide mevcut değilse "Product not found" metni
Kopya kağıdı
array_search() fonksiyonu, bir dizide belirli bir değeri arar ve bu değerin anahtarını veya dizinini döndürür:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // Çıktı: 2
?>Fonksiyon iki parametre alır: aradığınız değer ve arama yapılacak dizi. Değer bulunursa anahtarı, bulunamazsa false döndürür:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // Dönen değer: 2
$notFound = array_search(100, $scores); // Dönen değer: false
?>Kendin dene
<?php
// JSON dizi girişini oku
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);
// Aranacak ürün adını oku
$searchProduct = trim(fgets(STDIN));
// YAPILACAK: Kodunuzu aşağıya yazın
// Ürün konumunu bulmak için array_search() kullanın
// Sonucu yazdır
echo $result;
?>Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama