我有一个数组
print_r($myarray);
Array ( [0] => text one ) Array ( [0] => text two ) Array ( [0] => text three ) ...
当我使用切片时
print_r(array_slice($myarray,1,2));
Array ( ) Array ( ) Array ( ) Array ( ) ......
我得到一个空数组,如何将这个数组切成两半?
您实际上有一个包含数组的数组,这可能是导致您出现问题的原因。虽然我不明白你如何得到你发布的结果......很可能你实际上将切片函数应用于输出数组的每个元素。那么每次迭代你肯定会得到一个空数组。正如预期的那样,因为您迭代的每个元素仅包含一个元素。所以从位置 1 开始切片每次都会得到一个空数组...
考虑这个使用普通数组的简单示例:
<?php
$input = ["one", "two", "three", "four", "five", "six"];
$output = array_slice($input, 1, 2);
print_r($output);
输出为:
Array
(
[0] => two
[1] => three
)
所以 php 的
array_slice()
函数就像预期的那样工作......
与您在帖子中建议的数组数组相同:
<?php
$input = [["one"], ["two"], ["three"], ["four"], ["five"], ["six"]];
$output = array_slice($input, 1, 2);
print_r($output);
其输出如预期:
Array
(
[0] => Array
(
[0] => two
)
[1] => Array
(
[0] => three
)
)
还考虑到你下面的第二条评论,你在一个字符串中有一些单词(mighty就是你所描述的)我自己得到了一个有意义的结果:
<?php
$input = explode(' ', "one two three four five six");
$output = array_slice($input, 1, 2);
print_r($output);
正如预期的那样,输出是:
Array
(
[0] => two
[1] => three
)