PHP - karşılaştırıldığında değeri bir dizide olup olmadığını nasıl öğrenebilirim?

2 Cevap

Şöyle bir dizi var:

Array
(
    [0] => Array
        (
            [0] => 1
            [id] => 1
        )

    [1] => Array
        (
            [0] => 2
            [id] => 2
        )
)

Ne yapmak istiyorum id değeri alanında ne karşı bir int değerini karşılaştırmak olduğunu. Ben bir 1 diyelim geçmek olsaydı, yani, ben bir işlevi bu karşılaştırmak sahip olmak istiyorum. Ben İn_Array düşünüyordum ama ben bu işe alınamıyor. Herkes bu için kullanabilirsiniz hangi işlevi biliyor mu?

Teşekkürler.

2 Cevap

Ancak ben bu durumda aşağıdaki işlev bulur, size aradığınız kimliği içeren dizinin anahtarını istiyorum tahmin ediyorum, olmak işlevinin sonucu ne istiyorum tamamen net değil.

<?php
function get_key($array, $id) {
  foreach ($array as $key => $unit) {
   if ($unit['id'] == $id) {
     return $key;
   }
  }
}

Böyle bir şey deneyin:

$needle = 1;
$found = false;
foreach ($array as $key => $val) {
    if ($val['id'] === 1) {
        $found = $key;
        break;
    }
}
if ($found !== false) {
    echo 'found in $array['.$found.']';
}


Eğer daha kompakt bir şey istiyorum beri:

$needle = 1;
array_filter($array, create_function('$val', 'return $val["id"] !== '.var_export($needle, true).';'))

İşte id değeri 1 değil mi tüm bu unsurları süzer.