2015-01-15 190 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一下。