为了账号安全,请及时绑定邮箱和手机立即绑定

Array_slice() 在嵌套数组上不能按预期工作

Array_slice() 在嵌套数组上不能按预期工作

PHP
千巷猫影 2022-10-09 20:00:46
所以,我正在设计一个可以通过扩展运算符 ( ...$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',

     )


查看完整回答
反对 回复 2022-10-09
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

它按预期工作。它返回数组的第一个元素$arg,它是键为 0 的数组,它本身包含一个数组,而不是第一个元素的内容。您只是误解了 array_slice 的实际工作方式。


array (

  0 => 

  array (

    0 => 'value1',

    1 => 'value2',

    2 => 'valueN',

  ),

)


查看完整回答
反对 回复 2022-10-09
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信