获取包含数组和对象的元素

时间:2015-02-11 09:32:06

标签: php arrays object

我花了2个多小时寻找解决方案,我留给你,因为我完全被阻止了。我尝试用PHP学习对象。我创建了一个函数,它返回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);
}

但它在那里不起作用。

这是一个名为who返回此结果的函数

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)返回:

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

2 个答案:

答案 0 :(得分:1)

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

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

告诉我它是否适合你

答案 1 :(得分:0)

这个问题可能对您有所帮助: 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;
        }
    }
}