所以,我正在设计一个可以通过扩展运算符 ( ...$arg)接受多个参数的函数但它也可以采用简单的输入数组。我想array使用该array_slice()方法访问第一个元素,但它没有按预期工作: // This is what the spread argument passes into the function if it gets a single array $arg = [ ['value1', 'value2', 'valueN'], ]; // Accessing first element via array_slice: var_export( array_slice($arg, 0, 1) );预期结果: array ( 0 => 'value1', 1 => 'value2', 2 => 'valueN', )结果基本上等于输入数组: array ( 0 => array ( 0 => 'value1', 1 => 'value2', 2 => 'valueN', ), )我知道我可以简单地访问0th元素 ( $arg[0]) 来获取第一项,但我很好奇为什么array_slice()不能按预期工作。我在这里想念什么?
2 回答
互换的青春
TA贡献1797条经验 获得超6个赞
您期望数组中的第一个值。array_slice 返回切片数组。您可以使用 array_shift 来代替数组的第一个值并返回它。
print_r(array_shift($arg));
输出:
array (
0 => 'value1',
1 => 'value2',
2 => 'valueN',
)
哈士奇WWW
TA贡献1799条经验 获得超6个赞
它按预期工作。它返回数组的第一个元素$arg,它是键为 0 的数组,它本身包含一个数组,而不是第一个元素的内容。您只是误解了 array_slice 的实际工作方式。
array (
0 =>
array (
0 => 'value1',
1 => 'value2',
2 => 'valueN',
),
)
- 2 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消