1

我有一个如下所示的数组

Array
(
    [0] => Array
        (
            [0] => Date
            [1] => Name
            [2] => Hours
        )
    [1] => Array
        (
            [0] => 2013-01-02
            [1] => Test User
            [2] => 7:59
        )
    [2] => Array
        (
            [0] => 2013-01-03
            [1] => Test User
            [2] => 7:53
        )
    [3] => Array
        (
            [0] => 2013-01-04
            [1] => Test User
            [2] => 8:12
        )
    .
    .
    .
    .
    [16] => Array
    (
        [0] => 
        [1] => Total
        [2] => 103:1
    )
    [17] => Array
        (
            [0] => 
        )
)

并想从数组中删除最后一项,我试过array_pop但这在将上面的数组传递给 array_pop 给我输出后不起作用

Array
(
    [0] => 
)

我怎样才能用最少的代码实现这一点。

4

5 回答 5

12

尝试:

unset ($array_name[count($array_name)-1]);
于 2013-05-17T12:19:55.183 回答
2
$callback = function(&$array) { array_pop($array); };
array_walk($array, $callback);

这将从每个三元组中弹出最后一个元素。

于 2013-05-17T12:19:56.267 回答
0

如果您的所有数组都由从零到最大值的数字索引而没有任何中断,您可以使用

unset($ar[count($ar)-1]);

否则试试

end($ar);
unset($ar[key($ar)]);
于 2013-05-17T12:19:16.647 回答
0

试试喜欢

$my_cnt = count($my_arr);
unset($my_arr[$my_cnt-1]);
于 2013-05-17T12:18:11.337 回答
0

您看到的是“弹出”元素而不是修改后的数组。

array_pop()返回它从数组中删除的元素中的数据。

这意味着您写道:

print_r(array_pop($array));

相反,用 修改数组array_pop(),然后打印数组。

array_pop($array);
print_r($array);
于 2021-07-11T10:32:05.760 回答