2015-01-15 187 views
0

我有一个包含我需要的数据的对象数组。将对象中的数据排序到PHP多关联数组

下面是来自阵列的例子对象:

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

我想$ obj->的类别是主键,然后我想obj- $>日期类别阵列内的关键。

我想要的阵列看起来像这样:

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); 
    } 
} 

几乎工作,问题是,关键被重写,所以我最终只有一个日期。

+0

你做了什么? – 2015-01-15 16:57:46

+0

你应该学习数组:http://php.net/manual/en/language.types.array.php – Alex 2015-01-15 17:01:16

回答

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

你也可以遍历此:

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

FYI你花更多的时间格式化你的问题比它会带你到你自己google一下。