У меня есть массив, который выглядит примерно так:
Array ( [100] => Array ( [room_id] => 100 [name] => Town Center ) [110] => Array ( [room_id] => 110 [name] => Coffee Shop [pin_id] => 7146 [pin_x] => 570 [pin_y] => 150 ) )
Мне было интересно, есть ли способ получить конкретное значение, если бы был ключ «pin_id». Так, например:
Array ( [100] => Array ( [room_id] => 100 [name] => Town Center <-- No "pin_id" so I DON'T need this value ) [110] => Array ( [room_id] => 110 [name] => Coffee Shop <-- I want to OBTAIN this value [pin_id] => 7146 <-- Since the "pin_id" key is here [pin_x] => 570 [pin_y] => 150 ) )
Я пробовал использовать foreach, но мне сложно. Я все еще очень новичок в массивах и не очень знаком с терминологией / функциями.
Простое использование функции PHP array_key_exists
<?php $search_array = array('pin_id' => 1, 'second' => 4); if (array_key_exists('pin_id', $search_array)) { echo "The 'pin_id' element is in the array"; } ?>
* * РЕДАКТИРОВАНИЕ После прочтения вам может потребоваться пройти цикл foreach, поскольку вы используете многомерный массив
foreach($array as $arr) { if(array_key_exists('pin_id', $arr)) { echo "The 'pin_id' element is in the array"; } }
foreach ($your_big_array as $arr) { if ($arr['pin_id'] == 'some_value') $i_need_this = $arr['name']; }
function search_key( $array, $key ) { $results = array(); if ( is_array( $array ) ) { if ( isset( $array[$key] ) && $array[$key] == $key ) $results[] = $array; foreach ( $array as $subarray ) $results = array_merge( $results, tm_search_key_value( $subarray, $key ) ); } return $results; }
ПРИМЕНЕНИЕ:
search_key ($ array, 'pin_id');
Поиск определенного ключа из многократного, он будет возвращать массив этого конкретного ключа.