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


Split Multidimensional Array into Smaller Arrays

我有一个多维数组,看起来像这样:

{
  "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个数组的小数组。

我希望这是有意义的,我有点超出我的水平。

我想你的数组是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] .....

编辑:哦,不知怎么的,我完全误解了这个问题。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等。

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