2015-11-08 2 views
1

У меня есть массив, содержащий отдельные массивы (извлекается из БД) с содержанием, похожее на это:Создать новый массив со значениями из другого массива

Array 
(
[0] => Array 
    (
     [date] => 2014-11 
     [time] => 2135 
     [name] => John 
    ) 

[1] => Array 
    (
     [date] => 2014-11 
     [time] => 5496 
     [name] => Adam 
    ) 

[2] => Array 
    (
     [date] => 2014-12 
     [time] => 1526 
     [name] => John 
    ) 

[3] => Array 
    (
     [date] => 2014-12 
     [time] => 5481 
     [name] => Adam 
    ) 
[4] => Array 
    (
     [date] => 2014-12 
     [time] => 3476 
     [name] => Lizzie 
    ) 
) 

То, что я хотел бы сделать, это создать новый многомерный массив на основе предыдущего массива, где массив с тем же месяцем соединены вместе следующим образом:

Array 
(
[0] => Array 
    (
     [date] => 2014-11 
     [John] => 2135 
     [Adam] => 5496 
    ) 

[1] => Array 
    (
     [date] => 2014-12 
     [John] => 1526 
     [Adam] => 5481 
     [Lizzie] => 3476 
    ) 
) 

Я попытался взглянуть на различные функции массива, но просто не могу получить вокруг о том, как достичь это ....

ответ

1

Посмотрите следующий фрагмент.

$output = array(); // Where the output will be saved 

foreach ($input as $row) { // Need to process the original input array 

    $date = $row['date']; // Grouping by the date value, thus we use it as an index in an associative array 

    if (empty($output[$date])) { 
     $output[$date] = array('date' => $date); // Make sure the 'date' value is in the final output 
    } 

    $output[$date][$row['name']] = $row['time']; // Actual values, e.g., [Adam] => 5496 
} 

$output = array_values($output); // Removing original indexes from the associative array 

Желаемая структура массива в вопросе является странной, но вопрос не задан.

+0

Спасибо за подробное предложение! Он работает как рекламируемый. Причина, по которой я хочу, чтобы массив был таким, потому что данные будут использоваться для сложной гистограммы, и, как я вижу, это будет лучший формат для подачи в API Google. Я определенно очень открываю другие предложения, если они есть. Я, безусловно, очень нудный PHP-разработчик, который, вероятно, также отражается в моем способе мышления :-) – DanTheDane

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