2012-06-27 5 views
5
Array 
(
    [0] => Array 
     (
      [name] => A 
      [id] => 1 
      [phone] => 416-23-55 
      [Base] => Array 
       (
        [city] => toronto 
       ) 

      [EBase] => Array 
       (
        [city] => North York     
       ) 

      [Qty] => 1 
     ) 

(
    [1] => Array 
     (
      [name] => A 
      [id] => 1 
      [phone] => 416-53-66 
      [Base] => Array 
       (
        [city] => qing 
       ) 

      [EBase] => Array 
       (
        [city] => chong     
       ) 

      [Qty] => 2 
     ) 

) 

"0, 이름, ID, 전화, 자료실, 도시, Ebase, 수량"형식으로 모든 키 값을 가져 오는 방법은 무엇입니까?PHP에서 다차원 배열의 모든 키를 얻는 방법

감사합니다.

+3

을보십시오. –

+0

배열의 모든 키를 찾으려면 폭 넓은 검색 또는 깊이 우선 검색을 수행해야합니다. 이를 쉽게 수행하려면 재귀 함수를 사용해야합니다. – Cheesebaron

+0

정확한 배열'$ keys = array_merge (array_keys ($ array), array_keys (current ($ array)));는 아마 그렇게 할 것입니다. 그러나 우리는 최선을 다해서 최선을 다해서 할 수 있습니다. ** 최선의 방법으로 조언을 해주기 위해이 작업을 수행하면됩니다. – DaveRandom

답변

11

아이디어 일 것 foreach는() 루프로 시작하는이

function array_keys_multi(array $array) 
{ 
    $keys = array(); 

    foreach ($array as $key => $value) { 
     $keys[] = $key; 

     if (is_array($value)) { 
      $keys = array_merge($keys, array_keys_multi($value)); 
     } 
    } 

    return $keys; 
} 
+0

그것은 훌륭합니다! 고맙습니다! – aje

+0

다차원 배열에 대해서는 올바르지 않습니다. –

4

배열의 크기를 알지 못하는 경우 각 $ val이 배열 인 경우 자체를 호출하는 foreach 루프와 함께 재귀 함수를 사용하십시오. 크기를 알고 있으면 각 치수를 foreach하고 각 키를 기록하십시오. 이 같은

뭔가 :

<?php 
function getKeysMultidimensional(array $array) 
{ 
    $keys = array(); 
    foreach($array as $key => $value) 
    { 
     $keys[] = $key; 
     if(is_array($value)) { 
      $keys = array_merge($keys, getKeysMultidimensional($value)); 
     } 
    } 

    return $keys; 

} 
관련 문제