PHP array_pop 不工作

Posted

技术标签:

【中文标题】PHP array_pop 不工作【英文标题】:PHP array_pop is not working 【发布时间】:2011-07-03 07:53:15 【问题描述】:
$fav = explode("|","0 | 1 | 2 | ");  
print_r($fav);  
$fav = array_pop($fav);  
echo "<br>after <br>";  
print_r($fav);  

我的代码有什么问题?我想删除数组$fav 中的最后一个值。

【问题讨论】:

【参考方案1】:

array_pop 返回最后一个值而不是剩余部分。

所以将这一行 $fav = array_pop($fav); 更改为 array_pop($fav);

【讨论】:

【参考方案2】:

删除分配,所以它看起来像这样:

array_pop($fav);  

array_pop 返回移除的值并就地修改数组,所以不能将返回值赋给数组变量。

【讨论】:

【参考方案3】:
    <?php  
    $fav = explode("|","0 | 1 | 2 | ");  
    print_r($fav);  
    $remove_last= array_pop($fav);  
    echo "<br>after <br>";  
    print_r($fav);  
    ?>


    output

Array
    (
        [0] => 0 
        [1] =>  1 
        [2] =>  2 
        [3] =>  
    )
    after
Array
    (
        [0] => 0 
        [1] =>  1 
        [2] =>  2 
    )

【讨论】:

【参考方案4】:

您将array_pop 的结果分配给原始数组。将该行更改为:

$removed = array_pop($fav);

【讨论】:

【参考方案5】:

您已经覆盖了变量$fav。 您可能还想从您爆炸的字符串中删除最后一个 |

<?php  
$fav = explode("|","0 | 1 | 2");  
print_r($fav);  // output should be: 0, 1, 2
$last_element = array_pop($fav);  
echo "<br>after <br>";  
print_r($fav);  // output should be: 0, 1
?>

【讨论】:

【参考方案6】:

array_pop 返回删除元素,而不是数组本身。

试试这个:

<pre>  
<?php  
$fav = explode("|","0 | 1 | 2 | ");  
print_r($fav);  
$last = array_pop($fav);  
echo "<br>after <br>";  
print_r($fav);  
?>  
</pre> 

【讨论】:

以上是关于PHP array_pop 不工作的主要内容,如果未能解决你的问题,请参考以下文章

PHP array_pop

[PHP源码阅读]array_pop和array_shift函数

php数组array_push()和array_pop()以及array_shift()函数

php array_pop()数组函数将数组最后一个单元弹出(出栈)

array_pop

php--------删除数组的第一个元素和最后一个元素