将多维数组拆分为更小的数组

时间:2014-08-21 06:09:54

标签: php arrays multidimensional-array

我有一个多维数组,如下所示:

{
  "groups": [
    {
      "__v": 0,
      "_create_date": "2014-08-20T23:00:12.901Z",
      "_id": "53f5287ca78473a969001827",
      "_last_message_date": "2014-08-20T23:04:36.347Z",
      "activity": 0,
      "blocked_users": [],
      "created_by": {
        "_id": "53e84b0eba84943c6d0003f8",
        "_last_modified": "2014-08-20T00:11:05.399Z",
        "first_name": "Jegg",
        "last_name": "V"
      },
      "curated": false,
      "diversity": 0,
      "featured": false,
      "flagged": false,
      "last_message": {
        "text": "let's talk beo",
        "created_by": {
          "_id": "53e84b0eba84943c6d0003f8",
          "first_name": "Jegg",
          "last_name": "V"
        },
        "_id": "53f52984a78473a969001833",
        "_create_date": "2014-08-20T23:04:36.347Z"
      },
      "member_count": 1,
      "messages_count": 1,
      "name": "Test",
      "public": true,
      "recency": 52182276.347,
      "score": 52182276.347,
      "tags": []
    },

这种结构重复了3000多次,创建了一个非常大的多维数组。我想我可以使用array_chunk($ array,300)将数组分成更小的块。但我无法弄清楚如何准确地访问它们。

我想要做的是独立循环新的分块数组。所以我想最终得到类似的东西:

$array1 = {...}
$array2 = {...}
$array3 = {...}
$array4 = {...}

......等等

然后,我可以遍历每个新创建的数组,这些数组本质上是较小的原始数组,但是在一个多维数组中有3000个数组,就像我在第一个地方一样,我最终得到了300个这些较小的数组。每个阵列。

我希望这是有道理的,我有点不在我的联盟中。总是感谢帮助。

2 个答案:

答案 0 :(得分:1)

我认为你的数组是json格式。

首先对其进行解码,然后传递给array_chunk方法。

array_chunk($input_array, 300));

然后以$input_array[0][0]$input_array[0][1] ....... $input_array[0][299]$input_array[1][0]$input_array[1][1] .....

答案 1 :(得分:0)

编辑:哦,不知怎的,我完全误解了这个问题。 array_chunk值得关注。


您可以尝试使用extract将数组值提取到“全局”变量名称空间。

extract有三个参数:你想要提取的数组,标志和前缀(如果需要的话)。

我不确定如何提取非关联数组,但您可以尝试

$full_array = array(
    array( ... ),
    array( ... ),
    array( ... ),
    array( ... ),
    ...
);

// EXTR_PREFIX_ALL prefixes all extracted keys with wanted prefix (the third param).
$extract_amount = extract( $full_array, EXTR_PREFIX_ALL, 'prefix' );

现在您应该提取数组,并且可以使用变量名$prefix0$prefix1$prefix2等等。

我不确定提取具有数百个可用值的数组有多聪明。