SORU
8 Kasım 2010, PAZARTESİ


() in_array ve çok boyutlu dizi

in_array() değeri aşağıdaki gibi bir dizi var olup olmadığını kontrol etmek için kullanıyorum

$a = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $a)) 
{
    echo "Got Irix";
}

//print_r($a);

ama ne çok boyutlu bir dizi (aşağıda) hakkında çok dizi var olup olmadığını bu değeri kontrol edebilir miyim?

$b = array(array("Mac", "NT"), array("Irix", "Linux"));

print_r($b);

ya da çok boyutlu diziye gelince in_array() kullanarak olmamalıyım?

CEVAP
8 Kasım 2010, PAZARTESİ


in_array() çok boyutlu diziler üzerinde çalışmıyor. Özyinelemeli bir işlev için bunu yazabilirsiniz:

function in_array_r($needle, $haystack, $strict = false) {
    foreach ($haystack as $item) {
        if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
            return true;
        }
    }

    return false;
}

Kullanımı:

$b = array(array("Mac", "NT"), array("Irix", "Linux"));
echo in_array_r("Irix", $b) ? 'found' : 'not found';

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • aki6336

    aki6336

    14 AĞUSTOS 2008
  • Tomas N

    Tomas N

    14 Kasım 2010
  • Trulia

    Trulia

    29 Kasım 2006