Как проверить, существует ли ключ в под-ключах массива? И если этот ключ элемента найден, верните этот элемент?
Например, у меня есть этот массив,
Array ( [0] => Array ( [a] => Array ( [quantity_request] => 1 [time_created] => 1339688613 [variant] => Array ( ) ) ) [1] => Array ( [b] => Array ( [quantity_request] => 1 [time_created] => 1339688631 [variant] => Array ( ) ) ) [2] => Array ( [c] => Array ( [quantity_request] => 1 [time_created] => 1339688959 [variant] => Array ( ) ) ) )
Я хочу найти ключ «b» и вернуть все под него, например, это то, за чем я буду,
[b] => Array ( [quantity_request] => 1 [time_created] => 1339688631 [variant] => Array ( ) )
Я стараюсь с этим, но ничего не возвращается,
if (array_key_exists('b', $this->content)) { echo "The 'b' element is in the array"; }
Есть идеи?
function get_letter($letter){ foreach($this->content as $v){ if(array_key_exists($letter, $v) { return $v[$letter]; } } return false; } $array = get_letter('a');
Не могли бы вы просто перебрать внешний массив, проверив каждый массив внутри ключа?
foreach($this->content as $arr) { if(array_key_exists('b', $arr) { echo "Found it"; } }
foreach () корневой массив, затем array_key_exists () .
foreach ($array as $key => $value) { if (array_key_exists('b', $array[$key])) { return $array[$key]['b']; } }
Код здесь выглядит нормально, но мне интересно, откуда идет массив или где он определен? Одно из предложений, которое может сузить его, – это использовать is_array в содержимом $ this->, чтобы убедиться, что это правильный массив.
Я бы на самом деле не использовал это, потому что это не ясный код, но это классный один лайнер для php 5.4
$val = call_user_func_array('array_merge', $array)['b'];