Я пытаюсь использовать массив для поиска значения, находящегося внутри массива, а затем взять полный массив, в котором находится значение, и добавить его в массив. Ниже массив, чтобы получить значение из:Поиск значения внутри массива и получение массива
Array (
[0] => Array ([ID] => 138 [dimmer] => 5 [order] => 1 [double] => 0 [location1] => DSR [location2] => Stage Pockets)
[1] => Array ([ID] => 139 [dimmer] => 6 [order] => 1 [double] => 0 [location1] => DSR [location2] => Stage Pockets)
[2] => Array ([ID] => 140 [dimmer] => 7 [order] => 2 [double] => 0 [location1] => DSR [location2] => Stage Pockets)
[3] => Array ([ID] => 141 [dimmer] => 8 [order] => 2 [double] => 0 [location1] => DSR [location2] => Stage Pockets)
)
Я пытаюсь получить значение dimmer
с функцией поиска ниже:
function search($array, $key, $value)
{
$results = array();
if (is_array($array))
{
if (isset($array[$key]) && $array[$key] == $value)
$results[] = $array;
foreach ($array as $subarray)
$results = array_merge($results, search($subarray, $key, $value));
}
return $results;
}
Под ней используется значение $chan
, которое представляет собой целое число в используйте функцию выше для поиска массива. Затем foreach
должен пройти через массив, который равен $patch
, и выбрать массивы из вышеприведенного массива (только возвращает пустой массив), хотя он не делает этого, если вы не измените $patch_single['dimmer']
на строку, такую как "7"
.
$patch = search($patch, 'Channel', $chan);
foreach ($patch as $patch_single) {
print_r($patch_single);
$dim_single = intval($patch_single['dimmer']);
echo $dim_single;
$dimmers = search($dimmers, 'dimmer', $dim_single);
}
массив, который используется для получения $patch_single['dimmer']
есть, когда внутри foreach
:
Array ([ID] => 241 [Channel] => 100 [dimmer] => 7)
Array ([ID] => 242 [Channel] => 100 [dimmer] => 25)
Спасибо за ваши советы.