Ben*_*anc 10
unset如果你需要用删除的值"做"任何东西是不好的(除非你之前已将其分配给其他地方),因为它不会返回任何内容,而array_pop会给你最后一项的东西.
unset您提供的选项可能会略微降低性能,因为您计算数组的长度并对其执行一些数学运算,但我预计差异(如果有的话)可以忽略不计.
正如其他人所说的那样,如果你的数组是数字和连续的,那么上面的情况就是如此,但是如果你的数组不像这样结构,那么东西会变得复杂
例如:
<?php
$pop = $unset = array(
1 => "a",
3 => "b",
0 => "c"
);
array_pop($pop);
// array looks like this:
// 1 => "a", 3 => "b"
$count = count($unset) - 1;
unset($count);
// array looks like this because there is no item with index "2"
// 1 => "a", 3 => "b", 0 => "c"
Run Code Online (Sandbox Code Playgroud)
Osw*_*ald 10
array_pop($array)删除最后一个元素$array.
unset($array[count($array) -1]);删除索引处的元素count($array) -1.该元素不一定是数组的最后一个元素.
考虑$array = array(0 => 'foo', 2 => 'bar', 1 => 'baz').在这种情况下,$array[1]是最后一个元素.代码
foreach (array(0 => "foo", 2 => "bar", 1 => "baz") as $key => $value)
echo "$key => $value\n";
Run Code Online (Sandbox Code Playgroud)
版画
Run Code Online (Sandbox Code Playgroud)0 => foo 2 => bar 1 => baz
而且,索引处的元素count($array) -1甚至可能不存在.索引集中可能存在间隙,整数索引可以与字符串索引混合使用.
返回值不同。 array_pop返回最后一个元素,而unset不会返回任何内容。
对于简单地删除最后一个元素,array_pop会更好,因为您不需要执行count($array)-1,并且它更干净,更具可读性。