PHP:根据自定义函数将数组分割成块


PHP: split array into chunks based off of custom function?

我有以下一个或多个数组:

    $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"
            )
      );

我能找到的最糟糕的PHP函数是array_chunk(),但它只能在数字索引之外工作。有没有类似的函数可以根据自定义编写的函数来进行块分割决策?

我知道我可以编写一个自定义函数来遍历bigArray并手动完成这一切,但我想先问一下是否有本地方法。

使用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等。