我花了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)
答案 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;
}
}
}