从给定数组的公共第一个索引值中查找数组中的值并对其进行分组

时间:2016-05-20 18:02:57

标签: php arrays

假设我有这个多维数组:

Array(

[0] => Array
    (
        [0] => 08/Mar/2004
        [1] => apple
    )

[1] => Array
    (
        [0] => 08/Mar/2004
        [1] => orange
    )

[2] => Array
    (
        [0] => 09/Mar/2004
        [1] => mango
    )

[3] => Array
    (
        [0] => 09/Mar/2004
        [1] => grape
    )

[4] => Array
    (
        [0] => 10/Mar/2004
        [1] => apple
    )

[5] => Array
    (
        [0] => 10/Mar/2004
        [1] => kiwi
    )
)

数组中存在的日期是未知的,这意味着数组可以有其他日期,例如11 / Mar / 2004和12 / Mar / 2004,等等在子数组的每个第一个位置。

应为每个不同的日期动态创建数组。

我希望从子数组中检索所有常见日期的索引1处的所有值,并将值保存在新创建的数组中以供相应的日期使用。

我希望结果如下:

Array(
    [0] => 08/Mar/2004
    [1] => apple
    [2] => orange
)

Array(
    [0] => 09/Mar/2004
    [1] => mango
    [2] => grape
)

Array(
    [0] => 10/Mar/2004
    [1] => apple
    [2] => kiwi
)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这应该这样做:

foreach($array as $value)  {
    if(!isset($result[$value[0]])) {
        $result[$value[0]][] = $value[0];
    }
    $result[$value[0]][] = $value[1];
}

$result = array_values($result);

循环数组并构建结果数组:

  • 如果以日期为键的结果不存在,则创建它并添加日期
  • 然后追上水果
  • 最后,如果需要,重新索引
相关问题