将数据从对象排序到PHP multiassoc数组

时间:2015-01-15 16:54:26

标签: php

我有一个包含我需要的数据的对象数组。

以下是数组中的示例对象:

$obj->category = 'foo';
$obj->date = '2015-01-14';
$obj->value = 'some value';

我想将$ obj->类别作为主键,然后我想要$ obj-> date到类别数组中的键。

我希望数组看起来像这样:

Array
(
[foo] => Array
    (
        [2015-01-14] => 'some value'
        [2015-01-15] => 'some value'
    )

[bar] => Array
    (
        [2015-01-14] => 'some value'
        [2015-01-15] => 'some value'
    )

[baz] => Array
    (
        [2015-01-14] => 'some value'
        [2015-01-15] => 'some value'
    )

如何以整洁的方式创建和填充数组?

---编辑---

我试过了:

$keys = ('foo', 'bar', 'baz');
foreach ($objects as $object) {
     foreach ($keys as $key) {
         $array[$key] = array($object->date => $object->category);
     }
}

哪个几乎有效,问题是密钥被覆盖,所以我最终只有一个日期。

2 个答案:

答案 0 :(得分:1)

<?php
$output = array();
foreach ($array as $object) {
    $output[$object->category][$object->date] = $object->value;
}

答案 1 :(得分:1)

你可以循环这个:

$array[$obj->category][$obj->date] = $obj->value;

仅供参考,您花了更多时间格式化问题,而不是自己谷歌搜索。