2013-03-07 4 views
1

그래서 다음, 작업 코드가 있습니다. (나는 $ 키 변수를 사용하지 않을 사실에도 불구하고)PHP 순회 연관 배열을 통해

$arrayitertest=Array("Fruit"=>Array("Pear","Peach","Apple","Banana"),"Cars"=>Array("My budget","other cars.")); 

foreach ($arrayitertest as $key=>$value) 
foreach($arrayitertest[$key] as $result) echo $key.":". $result."|"; 

을하지만 foreach ($arrayitertest as $key => $value)foreach ($arrayitertest as $key)로 변경할 때 치명적인 오류가 발생

오류 : foreach()에서 잘못된 인수가 제공되었습니다.

누군가가 그렇게 친절한 이유가 무엇인지 말해 줄 수 있습니까?

편집 : 와우, 모든 답변 주셔서 감사합니다 .... 나는이 순간의 가장 구체적인 것을 받아 들일 것입니다.

+2

게시 할 수 있습니까? 또한 첫 foreach에는 $ key/$ value vars가 있습니다. –

+2

첫 번째 foreach 후에 닫히지 않은 브래킷이 있습니다. – shapeshifter

+0

브래킷은 두 번째 foreach에서 완전히 빠져 있습니다. –

답변

4

을 지금까지 당신의 오류에 관한 한 :

배열을 구문 분석하는 방법은이 경우 첫 번째 foreach에서 $value을 제거하면 이 이되고 두 번째 foreach에 대한 유효하지 않은 인수 인 "pear"이됩니다.

귀하의 프로그램에 정지 할 것 :

// this is not going to work 
foreach ("pear" as $result) 

을 방금로 변경할 수있는 최초의 foreach의 키가 필요하지 않은 경우 :

foreach ($arrayitertest as $value) 
{ 
    foreach($value as $result) 
    { 
    } 
} 
3

키와 값의 순서를 오해하고 있다고 생각합니다. $value => $key라고 말하면 기술적으로는 $key => $value입니다. 당신도 당신은 단순히 수있는 $key가 필요하지 않은 경우 분명히

foreach ($array as $key => $value) { 
    foreach ($array[$key] as $v) { 
     // $v = Pear (1st iteration), Peach (2nd), Apple (3rd) ... (for key = Fruit) 
     // $v = My Budget (1st iteration), other cars. (2nd) (for key = Cars) 
     // notice that $key is also accessible here 
    } 
} 

:

foreach ($array as $a) 
    foreach ($a as $v) 
     // use $v here 
0

코딩 $ 값 => $ 키 과일, 자동차, ...을 $ 값에 넣습니다.

$ 값을 코딩하면 Array ("Pear", "Peach", "Apple", "Banana")와 같은 배열을 $ value에 넣을 수 있으며 이는 배열의 유효한 인덱스가 아닙니다.