2013-12-18 6 views
1

: 당신이 경우에PHP 추출물 다차원 연관 배열의 키와 같은 기본 연관 배열로

$ar = array("First" => 1, "Second" , "Third" =>"Three"); 

는 :

foreach($ar as $key => $val) { 

    var_dump($key); 

} 

이 생성됩니다

string 'First' (length=5) 

int 0 

string 'Third' (length=5) 

을 어떻게 할 다차원 배열에서 동일한 결과를 얻으시겠습니까?

뭔가 같은 :

array(0 => array(
      "First" => 1, "Two", "Third" => "Three" 
       ) 
    ); 

내가 시도 :

foreach($ar as $k => $v){ 

     var_dump($ar[0][$k]); 
     } 

내가 가지고 :

string 'Two' (length=3) 

대신 :

string 'First' (length=5) 

    int 0 

    string 'Third' (length=5) 

고맙습니다

$ 아칸소이 같은 경우

답변

2

:

array(0 => array(
     "First" => 1, "Two", "Third" => "Three" 
      ) 
); 

당신은 동일한 결과를 얻을 수있는 내부 배열을 반복 할 수 :

foreach ($ar as $k => $v) { 
    foreach ($v as $k2 => $v2) { 
      var_dump($k2); 
    } 
} 

출력 :

string(5) "First" 
    int(0) 
string(5) "Third" 
+1

WORKED_like_Perfect .... 이것을 수락합니다. 단순함을 위해 +1 (K.I.S.S) –

+0

아니요, 질문이 "다차원"에 대해 말하는 경우 완벽하지 않습니다. 그러면 잘못된 대답 일 수도 있습니다. 그것은 단지 2 층 깊이를 제공했습니다.악몽의 대답은 올바른 방법입니다. –

1

을 다음과 같이 내부 배열의 값을 반복 할 수 있습니다.

foreach($ar[0] as $k => $v){ 
    var_dump($v); 
} 

문제는 ar 배열의 요소 1 개를 반복 한 다음 그 번호를 배열 내부에 적용한다는 것입니다.

foreach($ar as $k => $v){ 
    foreach($v as $k => $n){ 
     var_dump($n); 
    } 
} 
+0

귀하의 제안 인쇄도 그 값이 ... 내가 좋아하는 뭔가를 원하는 : '먼저' '문자열 (길이 = 5) INT 0 문자열 '세 번째'(길이 = 5)'그 값없이합니다. –

+0

그 가치가 없다면 무엇을 의미합니까? 배열에서 얻을 수있는 유일한 방법은 키입니다.이 경우에는 $ v에서 $ k로 변경하면됩니다. – lemondrop

2
function get_key(&$arr){ 
    foreach($arr as $key=>$value){ 
     if(is_array($value)){ 
      get_key($value); 
     }else{ 
      var_dump($key); 
     } 
    } 
} 
$arr = array(
    'key1'=>array('a'=>1,'b'=>2), 
    'key2'=>array('c'=>1,2), 
); 
get_key($arr); 

출력 :

string(1) "a" 
string(1) "b" 
string(1) "c" 
int(0) 
+0

멋지다. 그러나 Kinda Overkill. 고맙지 만 –

1

사용자가 액세스 할 수있는 다차원 배열 키 당신은 또한 두 수준에서 같은 일을하려면

, 당신은 다른 foreach 루프과 같이 필요 색인은 이렇게 :

$ary = array('whatever' => array('First' => 1, 'Two', 'Third' => 'Three'), 
    array('something' => array('cool' => 'yes', 'awesome' => 'super', 'great' => 10) 
); 
foreach($ary as $k => $a){ 
    // $k is each Array key within initial Array 
    foreach($a as $i => $v){ 
    // $i is internal index 
    // $v is internal value 
    } 
} 

참고 :

배열이 포함 된 배열에서 배열이 키에 할당되어 있지 않으면 첫 번째 배열은 실제로 키 0 아래의 값이므로 키 0은 필요하지 않습니다.

+0

멋지다 ... 초보자도 쉽게 만들 수 있지만! ... llz –

1
$arr = array(
    0 => array("First" => 1, "Two", "Third" => "Three") 
); 

foreach ($arr as $key => $value) 
{ 
    foreach ($value as $k => $v) 
    { 
     var_dump($k); 
    } 
}