unset()不能正常使用PHP

时间:2013-10-23 08:57:08

标签: php

我尝试了很多不同的方法,但我无法从数组中取消设置变量。我开始用一个字符串将它爆炸成一个数组,现在我要删除Bill。我错过了一些东西?我访问过php.net和我,仍然坚持......

<!DOCTYPE html>
<html>
<head>
<title></title>

</head>
<body>

<?php


$names = "Harry George Bill David Sam Jimmy";

$Allname = explode(" ",$names);

unset($Allname['Bill']);

sort($Allname);

$together = implode("," ,$Allname);

echo "$together";
?>
</body>
</html>   

5 个答案:

答案 0 :(得分:14)

那是因为['Bill']是数组条目的值,而不是索引。 你想要做的是

unset($Allname[2]); //Bill is #3 in the list and the array starts at 0.

或查看此问题以获得更详细和更好的答案:

PHP array delete by value (not key)

答案 1 :(得分:1)

因为未设置需要密钥而不是值。

比尔是你的价值。

unset($Allname[2])
爆炸后,阵列看起来像是:

array (

0 => 'Harry',
1 => 'George',
2 => 'Bill',
...
)

答案 2 :(得分:1)

unset($arr['key'])取消设置。您的密钥是01等,而不是“Bill”。

如果您想删除“Bill”,最简单的方法是:

$names            = 'Harry George Bill David Sam Jimmy';
$namesArray       = explode(' ', $names);
$namesWithoutBill = array_diff($namesArray, array('Bill'));

答案 3 :(得分:1)

You can unset by array key
unset($Allname[2]);

答案 4 :(得分:0)

有时,它看起来像一个数组,但它可以是一个数组的打印字符串...... - 它发生在我们最好的人身上......

或者在任何情况下检查你的数组真的是一个数组。 我知道这听起来很傻,但有时候经过几个小时的屏幕时间后,就会出错。

<?php

$MyArray = array('0' => 'this','1' => 'is','2' => 'an array');
echo is_array($MyArray) ? 'It Is an Array' : 'not an Array';

?>

这将输出:它是一个数组。