将数组切成两半[重复]

问题描述 投票:0回答:1

我有一个数组

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 ( ) ......

我得到一个空数组,如何将这个数组切成两半?

php arrays
1个回答
1
投票

您实际上有一个包含数组的数组,这可能是导致您出现问题的原因。虽然我不明白你如何得到你发布的结果......很可能你实际上将切片函数应用于输出数组的每个元素。那么每次迭代你肯定会得到一个空数组。正如预期的那样,因为您迭代的每个元素仅包含一个元素。所以从位置 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
)
© www.soinside.com 2019 - 2024. All rights reserved.