获取带有数组和对象的元素

Get the element with array and object

我花了 2 个多小时寻找解决方案,我把它留给你,因为我完全被阻止了。我尝试学习 PHP 中的对象。我创建了一个函数,return 我得到 SQL 查询的结果。

这里是 var_dump return :

object(stdClass)[6]
  public 'name' => 
    array (size=2)
      0 => 
        object(stdClass)[11]
          public 'id' => string '1' (length=1)
      1 => 
        object(stdClass)[12]
          public 'id' => string '5' (length=1)

我使用 foreach 来解析它,但我没有直接每个元素的 id。而且我特别不想使用另一个 foreach。

foreach($function as $key => $value){
    var_dump($value->id);
}

但它在那里不起作用。

这里是函数 returns this result

public function nameFunction () {

    $obj = new stdClass();
    $return = array();

    $request = $this->getConnexion()->prepare('SELECT id FROM table') or die(mysqli_error($this->getConnexion()));

    $request->execute();
    $request->store_result();
    $request->bind_result($id);

    while ($request->fetch()) {
        $return[] = parent::parentFunction($id);
    }

    $obj->name = $return;

    $request-> close();

    return $obj;
}

和parent::parentFunction($id) returns :

object(stdClass)[11]
  public 'id' => string '1' (length=1)

这个问题可能对您有帮助: php parsing multidimensional stdclass object with arrays

特别是 stasgrin

的回答
function loop($input)
{
    foreach ($input as $value)
    {
        if (is_array($value) || is_object($value))
            loop($value);
        else
        {
            //store data
            echo $value;
        }
    }
}

您正在循环对象而不是数组。尝试使用此代码

foreach($function->name as $key => $value){
    var_dump($value->id);
}

告诉我它是否适合你