我在foreach中的一个json解码foreach上收到警告(尽管代码工作很奇怪)警告是:警告:为foreach()提供的参数无效它指的是这一行: foreach($ value as $ val){
以下是JSON响应:
Array
(
[ACTION] => avail.datacenters
[DATA] => Array
(
[0] => Array
(
[LOCATION] => Dallas, TX, USA
[DATACENTERID] => 2
[ABBR] => dallas
)
[1] => Array
(
[LOCATION] => Fremont, CA, USA
[DATACENTERID] => 3
[ABBR] => fremont
)
[2] => Array
(
[LOCATION] => Atlanta, GA, USA
[DATACENTERID] => 4
[ABBR] => atlanta
)
[3] => Array
(
[LOCATION] => Newark, NJ, USA
[DATACENTERID] => 6
[ABBR] => newark
)
[4] => Array
(
[LOCATION] => London, England, UK
[DATACENTERID] => 7
[ABBR] => london
)
[5] => Array
(
[LOCATION] => Tokyo, JP
[DATACENTERID] => 8
[ABBR] => tokyo
)
[6] => Array
(
[LOCATION] => Singapore, SG
[DATACENTERID] => 9
[ABBR] => singapore
)
[7] => Array
(
[LOCATION] => Frankfurt, DE
[DATACENTERID] => 10
[ABBR] => frankfurt
)
[8] => Array
(
[LOCATION] => Tokyo 2, JP
[DATACENTERID] => 11
[ABBR] => shinagawa1
)
)
[ERRORARRAY] => Array
(
)
)
我的foreach代码:
$randDCID = array();
foreach ($linodeRegions as $value) {
foreach ($value as $val) {
echo $val['DATACENTERID'] . "<br />";
$randDCID[] = $val['DATACENTERID'];
}
}
任何人都可以在警告上看到问题(尽管它正在输出所需的结果)。
答案 0 :(得分:1)
错误可能来自ACTION
索引和数组的相应值(字符串)。假设原始数组中$linodeRegions
的事实,在这种情况下不需要创建嵌套循环,只需使用这样的foreach
循环:
$randDCID = array();
foreach ($linodeRegions['DATA'] as $value) {
echo $value['DATACENTERID'] . "<br />";
$randDCID[] = $value['DATACENTERID'];
}