获取带有数组和对象的元素
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);
}
告诉我它是否适合你
我花了 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);
}
告诉我它是否适合你