PHP的foreach数组和对象(PHP Foreach Arrays and objects)

2019-08-03 13:02发布

我有对象的数组。 一个print_r输出结果如下:

Array
(
    [0] => stdClass Object
        (
            [sm_id] => 1
            [c_id] => 1
        )
    [1] => stdClass Object
        (
            [sm_id] => 1
            [c_id] => 2

        )
)

我真的在努力寻找一种方式来循环,虽然结果并访问对象的元素。 如果任何人都可以给我任何指针,我将非常感激。

提前致谢

Answer 1:

使用

//$arr should be array as you mentioned as below
foreach($arr as $key=>$value){
  echo $value->sm_id;
}

要么

//$arr should be array as you mentioned as below
foreach($arr as $value){
  echo $value->sm_id;
}


Answer 2:

遍历数组和对象是一个很常见的任务,这是很好的,你想学习如何做到这一点。 一般来说,你可以做foreach循环 ,其循环在每个成员,分配给它一个新的临时名称,然后让你通过这个名字办理特定成员:

foreach ($arr as $item) {
    echo $item->sm_id;
}

在这个例子中我们每一个在价值$arr ,将按顺序访问$item 。 因此,我们可以直接打印过的,我们的价值观。 我们还可以包括索引,如果我们想要的东西:

foreach ($arr as $index => $item) {
    echo "Item at index {$index} has sm_id value {$item->sm_id}";
}


Answer 3:

递归遍历对象或阵列阵列或对象的元素:

function traverse(&$objOrArray)
{
    foreach ($objOrArray as $key => &$value)
    {
        if (is_array($value) || is_object($value))
        {
            traverse($value);
        }
        else
        {
            // DO SOMETHING
        }
    }
}


Answer 4:

假设你的sm_idc_id性质是公开的,你可以通过使用访问它们foreach阵列上:

$array = array(/* objects in an array here */);
foreach ($array as $obj) {
    echo $obj->sm_id . '<br />' . $obj->c_id . '<br />';
}


文章来源: PHP Foreach Arrays and objects