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ş:
Çok boyutlu MD5 dizi için PHP en iyi y...
Sözdizimi, iki boyutlu bir dizi oluştu...
Nasıl PHP çok boyutlu bir dizi yinelen...
Dizeleri açısal kaynak tarafından 2b i...
Nasıl çok boyutlu bir dizi sütun ayıkl...