PHP:基于自定义函数将数组拆分成块?

时间:2012-02-03 22:49:08

标签: php arrays

我有以下数组或数组:

    $bigArray = array(
        array(
            id = 3,
            text = "Hello World"
            ),
        array(
            id = 3,
            text = "Taco"
            ),
         array(
             id = 10,
             text = "Foo"
            ),
         array(
             id = 10,
             text = "Bar"
            ),
         array(
             id = 10,
             text = "dogfood"
            )
      );

我希望能够根据id编号将数组数组拆分为多个数组,如下所示:

    $arrayOne = array(
        array(
            id = 3,
            text = "Hello World"
            ),
        array(
            id = 3,
            text = "Taco"
            )
        );

    $arrayTwo = array(
         array(
             id = 10,
             text = "Foo"
            ),
         array(
             id = 10,
             text = "Bar"
            ),
         array(
             id = 10,
             text = "dogfood"
            )
      );

我能找到的cloest PHP函数是array_chunk(),但它仅适用于数字索引。是否有任何类似的函数可以根据自定义编写函数来决定块拆分决策?

我知道我可以编写一个自定义函数来遍历bigArray并手动完成所有操作,但我想首先询问是否有任何本机方法。

1 个答案:

答案 0 :(得分:1)

使用id属性创建数组。

$group = array();
foreach($bigArray as $ar){
    $group[$ar['id']][]=$ar;
}
$chunks = array_values($group);

现在,如果您运行extract($chunks,EXTR_PREFIX_ALL, 'Array_');,您将获得$Array_0$Array_1等数组变量。