【问题标题】:PHP: split array into chunks based off of custom function? [duplicate]PHP:根据自定义函数将数组拆分为块? [复制]
【发布时间】:2012-02-04 07:02:44
【问题描述】:

我有以下数组:

    $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 并手动完成这一切,但我想先询问是否有任何本地方法。

【问题讨论】:

    标签: php arrays


    【解决方案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 等数组变量。

    【讨论】:

      猜你喜欢
      • 2017-05-15
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      相关资源
      最近更新 更多