2015-11-08 104 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

感谢您的详细建议!它像广告一样工作。 我想要这样的数组的原因是因为数据将被用于堆叠条形图,并且正如我所看到的,这将成为提供给Google API的最佳格式。 我绝对非常开放其他建议,如果有的话。我是一个非常小的PHP开发人员,这可能也反映了我的思维方式:-) – DanTheDane