我有这样的数组
知道如何使用#items
访问foreach
子集或像这样快速访问某些内容吗?
Array
(
[0] => Array
(
[#theme] => item_list
[#items] => Array
(
[0] => Array
(
[nid] => 1
[changed] => 1514034947
[title] => TITLE 1
)
[1] => Array
(
[nid] => 2
[changed] => 1514034947
[title] => TITLE 2
)
)
)
[1] => Array
(
[#theme] => pager
)
BEST
答案 0 :(得分:1)
假设阵列结构与您在此处发布的完全相同,那么您可以尝试一下。我不知道你想对每个项目做什么,所以这个例子只打印出每个项目的元素:
foreach( $array as $outerarray )
{
foreach( $outerarray['#items'] as $item )
{
echo "{$item['nid']} {$item['changed']} {$item['title']}\n";
}
}
答案 1 :(得分:1)
您可以使用嵌套的foreach
从此数组对象中获取最终项目列表...
foreach($data as $items_list)
{
foreach($items_list[#items] as $items)
{
// do something here....
}
}
答案 2 :(得分:1)
由于您的元素位于3个级别以下,因此您需要使用foreach三次,如下所示:
foreach($data as $items_list){
foreach($items_list[#items] as $items){
foreach($items as $val){
echo $val['nid'];
}
}
}
您可以每次只计算数组并在foreach循环之前添加条件以检查是否存在更多数组。
就像你可以计算主数组并使用while循环添加条件然后使用foreach,如下所示:
$count = 0;
while($count<count($array)){
foreach($array[$count]['#items'] as $items ){
foreach($items as $val){
echo $val['nid'];
}
}
$count = $count+1;
}
在做任何事情之前,如果你调试下面的多个数组会更好:
echo "<pre>"; print_r($array); die;