如何在多维数组中取消设置最后一项?

时间:2013-05-17 12:15:52

标签: php multidimensional-array unset

我有一个如下所示的数组

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] => 
)

如何用最少的代码实现这一目标。

5 个答案:

答案 0 :(得分:12)

尝试:

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

答案 1 :(得分:1)

$callback = function(&$array) { array_pop($array); };
array_walk($array, $callback);

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

答案 2 :(得分:0)

尝试

$my_cnt = count($my_arr);
unset($my_arr[$my_cnt-1]);

答案 3 :(得分:0)

如果所有数组都被数字从0到最大值编入索引而没有任何中断,则可以使用

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

否则尝试

end($ar);
unset($ar[key($ar)]);

答案 4 :(得分:0)

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

const talkedRecently = new Set(); module.exports = { name: 'c', description: 'c!', execute(message, args) { if (talkedRecently.has(message.member.id)) { message.channel.send("You should wait 1 minute before use this command again") } else if(!talkedRecently.has(message.member.id)){ message.channel.send("Your id sucsesfully added to talkedRecently") talkedRecently.add(message.member.id) setTimeout(() => {talkedRecently.delete(message.author.id), 60000}) console.log(talkedRecently) } }, }; 返回它从数组中删除的元素中的数据。

这意味着你写道:

array_pop()

改为使用 print_r(array_pop($array)); 修改数组,然后打印数组。

array_pop()