如何索引对象数组

时间:2019-01-03 20:05:48

标签: php arrays

我有一个有效的代码,但是我想知道是否有更好的方法可以执行相同的操作。我尝试了一些php数组函数,但未成功,也许我使用了错误的方法。

$object1 = new stdClass;
$object1->name  = 'John Doe';
$object1->token = 123;

$object2 = new stdClass;
$object2->name  = 'Mary Doe';
$object2->token = 123;

$data = array(
    $object1,
    $object2
);

foreach ($data as $key => $value)
{
    $new_array[$value->token][] = $value;
}

var_dump($new_array);die;

这段代码正好满足了我的需要,它是一个由标记属性索引的新数组,但是由于某种原因,这段代码似乎没有编写。我该怎么做更好?

修改 我想在没有foreach的情况下获得相同的输出,也许使用一些数组函数形式的php。

1 个答案:

答案 0 :(得分:1)

$fancyArray = array_reduce($data, function($carry, $value) {
    $carry[$value->token][] = $value;
    return $carry;
});

var_dump($fancyArray);

https://secure.php.net/manual/en/function.array-reduce.php

相关问题