0

我希望你能帮助我解决这个将对象数组转换为单个对象的简单问题。所以我可以直接调用它们的属性。

我的意思是,我在下面列出了这些数据:

array(3) {
  [0]=>
  object(stdClass)#259 (8) {
    ["id"]=>
    int(2)
    ["author_id"]=>
    int(2)
    ["title"]=>
    string(17) "The Emperorasdasd"
    ["publisher"]=>
    string(15) "De publishing"
    ["created_at"]=>
    string(19) "2013-10-11 12:49:00"
    ["updated_at"]=>
    string(19) "2013-10-12 09:44:58"
    ["date_published"]=>
    string(10) "02-12-2013"
    ["name"]=>
    string(8) "John Doe"
  }
  [1]=>
  object(stdClass)#260 (8) {
    ["id"]=>
    int(1)
    ["author_id"]=>
    int(1)
    ["title"]=>
    string(4) "Demo"
    ["publisher"]=>
    string(10) "ooqwwoeqoe"
    ["created_at"]=>
    string(19) "2013-10-12 09:45:31"
    ["updated_at"]=>
    string(19) "2013-10-12 09:45:36"
    ["date_published"]=>
    string(10) "26-12-1993"
    ["name"]=>
    string(11) "Demo"
  }
  [2]=>
  object(stdClass)#261 (8) {
    ["id"]=>
    int(1)
    ["author_id"]=>
    int(1)
    ["title"]=>
    string(12) "Read My Mind"
    ["publisher"]=>
    string(13) "TF Publishing"
    ["created_at"]=>
    string(19) "2013-10-12 09:46:53"
    ["updated_at"]=>
    string(19) "2013-10-12 09:46:53"
    ["date_published"]=>
    string(10) "30-11-2009"
    ["name"]=>
    string(11) "James Mones"
  }
}

如何将 3 项数组转换为 3 个单独的对象?所以我可以像这样直接称呼他们:$books->id,不是$books[0]->id

4

3 回答 3

2

它不是 100% 清楚你的意思,你是否希望这三个对象作为单独的变量,或者你只需​​要一种访问它们的方法。

一个简单的 foreach 就足够了。

foreach ( $collection as $model ) 
{
    $id = $model->id;
}

或者,Eugen 提供的答案将获取变量的特定索引供您使用。

于 2013-10-12T12:26:52.773 回答
0

您可以使用

list($books1, $books2, $books3) = $arrayOfObjects;

演示。

因此,如果您在$arrayOfObjects其中有三个对象,那么每个对象都将从数组中提取并存储在提供的变量中list,您可以使用第一个对象,例如

echo $books1->id;
echo $books2->id;
echo $books3->id;

此外,使用循环你可以这样做

foreach($arrayOfObjects as $books) {
    echo $books->id;
}
于 2013-10-15T20:33:29.273 回答
0

你是这个意思吗?

$book0 =& $books[0];
$book1 =& $books[1];
$book2 =& $books[2];

echo $book0->id
于 2013-10-12T10:31:22.823 回答