2015-01-15 1 views
0

У меня есть массив объектов, который содержит нужные мне данные.Сортировка данных из объекта в массив multiassoc 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' 
    ) 

)

Как создать и заполнить массив в аккуратном образом?

--- EDIT ---

Я попытался это:

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

Который почти работает, проблема заключается в том, что ключ получает переопределен, так что я в конечном итоге только один день.

+0

Какие попытки вы сделали? –

+0

Вы должны узнать о массивах: http://php.net/manual/en/language.types.array.php – Alex

ответ

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 это самостоятельно.

Смежные вопросы