in_array () `сравнивает заданные значения со значениями массива. В вашем случае каждая запись массива имеет два значения, но данный массив содержит только одно, поэтому вы не можете сравнивать оба этих способа. Я не вижу пути вокруг
$found = false;
foreach ($array as $item) {
if ($item['NUMBER'] == 2) {
$found = true;
break;
}
}
echo $found ? '1' : '0';
Возможно (особенно с php5.3) вы можете создать что-то с array_map()
или array_reduce()
. Например
$number = 2;
echo array_reduce($array, function ($found, $currentItem) use ($number) {
return $found || ($currentItem['NUMBER'] == $number);
}, false) ? '1' : '0';
или
$number = 2;
echo in_array($number, array_map(function ($item) {
return $item['NUMBER'];
}, $array) ? '1' : '0';