我尝试了很多不同的方法,但我无法从数组中取消设置变量。我开始用一个字符串将它爆炸成一个数组,现在我要删除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>
答案 0 :(得分:14)
那是因为['Bill']是数组条目的值,而不是索引。 你想要做的是
unset($Allname[2]); //Bill is #3 in the list and the array starts at 0.
或查看此问题以获得更详细和更好的答案:
答案 1 :(得分:1)
因为未设置需要密钥而不是值。
比尔是你的价值。
unset($Allname[2])
爆炸后,阵列看起来像是:
array (
0 => 'Harry',
1 => 'George',
2 => 'Bill',
...
)
答案 2 :(得分:1)
unset($arr['key'])
取消设置键。您的密钥是0
,1
等,而不是“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';
?>
这将输出:它是一个数组。