[英]PHP Iterating Through Associative Array
所以我有以下工作代碼:
$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)
它將引發致命錯誤(盡管我從未使用$ key變量。)
錯誤是:為infor中的foreach()提供了無效的參數
有人能告訴我為什么會這樣嗎?
編輯:哇,謝謝你的所有答案。...到目前為止,我將接受最具體的答案。
就您的錯誤而言:如果從第一個foreach
刪除$value
,則$key
成為該值,而$arrayitertest[$key]
成為"pear"
,這對於第二個foreach
是無效的參數。
您的程序將暫停:
// this is not going to work
foreach ("pear" as $result)
如果您不需要第一個foreach
的密鑰,則可以將其更改為:
foreach ($arrayitertest as $value)
{
foreach($value as $result)
{
}
}
我認為您誤解了鍵和值的順序。 在說$value => $key
的地方,從技術上講,它是$key => $value
。
解析數組的方法是這樣的:
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
}
}
顯然,如果您不需要$key
,也可以簡單地執行以下操作:
foreach ($array as $a)
foreach ($a as $v)
// use $v here
編碼$ value => $ key,將Fruit,Car,...放入$ value。
僅對$ value進行編碼會將諸如Array(“ Pear”,“ Peach”,“ Apple”,“ Banana”)之類的數組放入$ value中,這不是數組的有效索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.