2014-02-02 3 views
2

У меня есть массив, который выглядит следующим var_dump($result):получить индекс комплексного массива в PHP

$result = array(
    array("Start" => array("xxxx")), 
    array("Driving route" => array("xxxx")), 
    array("Lunch-Rest Break" => array("xxxx")), 
    array("Break" => array("xxxx")), 
    array("Waiting" => array("xxxx")), 
    array("End" => array("xxxx"))s 
); 

Как я могу получить индекс данного ключа? Например, я хотел бы получить индекс ключа «Break» Я сделал, как folowing:

$key = array_search('Break', $result); 

$key пуст, я не получаю индекс.

Спасибо.

+0

[array_search()] (http://www.php.net/manual/en/function.array-search. php) является __not__ рекурсивным, но есть много примеров в комментариях к ручному документу PHP, где показаны способы реализации поиска рекурсивного массива –

ответ

2

Вот функция:

$result = array(
    array("Start" => array("xxxx")), 
    array("Driving route" => array("xxxx")), 
    array("Lunch-Rest Break" => array("xxxx")), 
    array("Break" => array("xxxx")), 
    array("Waiting" => array("xxxx")), 
    array("End" => array("xxxx")) 
); 

function searchKeyIndex($array, $key) { 
    for($i = 0; $i < count($array); $i++) { 
     if(isset($array[$i][$key])) { 
      return $i; 
     } 
    } 
} 

echo searchKeyIndex($result, "Break"); 

Выход: 3

Смежные вопросы