所以,我正在設計一個可以通過擴展運算符 ( ...$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 關注
- 109 瀏覽
添加回答
舉報
0/150
提交
取消