Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php larvel split()返回数组和对象的混合_Php_Laravel - Fatal编程技术网

Php larvel split()返回数组和对象的混合

Php larvel split()返回数组和对象的混合,php,laravel,Php,Laravel,我试图将数组分成两部分 $collection = collect( [1, 2, 15, 16] ); $groups = $collection->split( 2 ); 结果是。。。混合: (2) [Array(2), {…}] 0: Array(2) 0: 1 1: 2 length: 2 __proto__: Array(0) 1: 2: 15 3: 16

我试图将数组分成两部分

$collection = collect( [1, 2, 15, 16] );

$groups = $collection->split( 2 );
结果是。。。混合:

(2) [Array(2), {…}]
    0: Array(2)
        0: 1
        1: 2
        length: 2
        __proto__: Array(0)
    1: 
        2: 15
        3: 16
        __proto__: Object
    length: 2
    __proto__: Array(0)
我不确定这是一个错误还是我遗漏了什么。如果我分成多个组,第一个组总是一个数组,其他组是对象。为什么会这样做?我如何使输出类型一致



另外,如果集合恰巧是一个带有数字索引的数组(如本例所示),则快速解决方案是使用
array\u chunk($collection,2)
。根据下面的答案,如果索引不是数字,那么这个问题就不会发生。

不,您可能遗漏了什么。 如果拆分集合,结果将是集合的集合:

Illuminate\Support\Collection {#1178
#items: array:2 [
    0 => Illuminate\Support\Collection {#1177
      #items: array:2 [
        0 => 1
        1 => 2
      ]
    }
    1 => Illuminate\Support\Collection {#1156
      #items: array:2 [
        2 => 15
        3 => 16
      ]
    }
  ]
}

不,你可能遗漏了什么。 如果拆分集合,结果将是集合的集合:

Illuminate\Support\Collection {#1178
#items: array:2 [
    0 => Illuminate\Support\Collection {#1177
      #items: array:2 [
        0 => 1
        1 => 2
      ]
    }
    1 => Illuminate\Support\Collection {#1156
      #items: array:2 [
        2 => 15
        3 => 16
      ]
    }
  ]
}

您还需要调用
$groups->toArray()
方法。

您还需要调用
$groups->toArray()
方法。

这是一个明显的例子:

$a = [[1,2], [2 => 2, 3 => 3]];
echo json_encode($a);
输出为:

[[1,2],{"2":2,"3":3}]

第一个元素将是数组,因为它中的键是零索引的,第二个元素将是对象,因为它中的键不是零索引的。

这是一个明显的例子:

$a = [[1,2], [2 => 2, 3 => 3]];
echo json_encode($a);
输出为:

[[1,2],{"2":2,"3":3}]

第一个元素将是数组,因为它中的键是零索引的,第二个元素将是对象,因为它中的键不是零索引的。

属性在那里做什么?我认为这个结果来自javascriptconsole@YouneL嗯,说得好。它来自控制台。我猜当它到达前端时,可能会发生一些事情。我需要调查一下,任何事情都不会发生
json\u编码
array(数字键不是从
0开始)为您提供了一个对象。
\uuuuuuu proto\uuuu
属性在那里做什么?我认为这个结果来自javascriptconsole@YouneL嗯,说得好。它来自控制台。我猜当它到达前端时,可能会发生一些事情。我需要调查一下,任何事情都不会发生
json_编码
数组中的数字键不是从
0开始的
为您提供了一个对象。