PHP Foreach数组和对象

Att*_*tak 31 php arrays stdclass

我有一个对象数组.一个print_r输出如下:

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

        )
)
Run Code Online (Sandbox Code Playgroud)

我真的很难找到循环结果并访问对象元素的方法.如果有人能给我任何指示,我将非常感激.

提前致谢

GBD*_*GBD 42

使用

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

要么

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

  • 请注意,不需要`$ key =>`部分 (7认同)
  • 但建议包含 `$key => ` 部分。根据这个基准,当你*包含* $key 部分时,循环速度是原来的两倍:http://www.phpbench.com/ (2认同)

Sam*_*son 6

循环使用数组和对象是一项非常常见的任务,并且您希望学习如何操作它是件好事.一般来说,你可以做一个foreach循环,其循环在每个成员,分配给它一个新的临时名称,然后让你通过这个名字办理特定成员:

foreach ($arr as $item) {
    echo $item->sm_id;
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,$arr将按顺序访问我们中的每个值$item.所以我们可以直接打印我们的值.如果我们想要,我们还可以包括索引:

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