【发布时间】:2015-01-17 03:02:41
【问题描述】:
根据定义,PHP 的 array_shift 将返回数组中的第一个元素,并且该数组将缩小一个元素。
我想将一个数组交替分割成两个子数组,即索引 0,2,4,6,... 和索引 1,3,5,7,...
我首先将它分成 2 个块,然后我使用 array_map 调用 array_shift。但是,它是正确的(输出如下):
array1: Array ( [0] => greeting [1] => question [2] => response )
array2: Array ( [0] => Array ( [0] => greeting [1] => hello ) [1] => Array ( [0] => question [1] => how-are-you ) [2] => Array ( [0] => response [1] => im-fine ) )
代码如下:
$a=array("greeting", "hello", "question", "how-are-you", "response", "im-fine");
$b=array_chunk($a, 2);
$c=array_map("array_shift", $b);
echo "array1: ";
print_r($c);
echo "array2: ";
print_r($b);
array2 在 array_shift 之后似乎没有缩小。这是正确的行为吗?我怎样才能做我打算做的事?
谢谢
【问题讨论】: