对多维数组有点困难。我缩短了它,但阵列看起来像这样
array(192) {
["count"]=> int(191)
[0]=>array(124) {
[11]=>string(10) "usnchanged"
["homemta"]=>array(2) {
["count"]=>int(1)
[0]=>string(206) "Some String"
}
[12]=>string(7) "homemta"
["proxyaddresses"]=>array(2) {
["count"]=>int(1)
[0]=>string(46) "SMTP:remove=email@email.com"
}
}
}
}
我正在尝试获取将在proxyaddresses下列出的电子邮件地址。我现在正在做的是:
for($i=0; $i<$data["count"]; $i++) {
foreach($data[$i]["proxyaddresses"] as $object) {
print_r($object);
}
}
这可以获得我需要的数据,但在所有数据之间,我会收到很多警告,比如
注意:未定义的索引:第88行的index.php中的proxyaddresses
警告:在index.php中为foreach()提供的参数无效 88
所以我认为它不喜欢什么。如何基于上面的数组结构正确地进行循环?
由于
答案 0 :(得分:2)
这是因为每个循环都不存在proxyaddresses元素。您必须检查是否已设置以避免使用php isset()
函数发出警告。
for($i=0; $i<$data["count"]; $i++) {
if(isset($data[$i]["proxyaddresses"])){
foreach($data[$i]["proxyaddresses"] as $object) {
print_r($object);
}
}
}
答案 1 :(得分:1)
for($i=0; $i<$data["count"]; $i++) {
if(!isset($data[$i]["proxyaddresses"])) continue;
foreach($data[$i]["proxyaddresses"] as $object) {
print_r($object);
}
}