unset( ) 在 PHP 中不起作用

25 浏览
0 Comments

unset( ) 在 PHP 中不起作用

我尝试了很多不同的方法,但是我无法从一个数组中取消设置一个变量。我从一个字符串开始,将其拆分为一个数组,现在我想要删除Bill。我是不是漏掉了什么?我已经访问过php.net,但我仍然卡住了...

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

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

unset($Allname['Bill']);

sort($Allname);

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

echo "$together";

?>

0
0 Comments

原因:unset函数期望一个键而不是一个值作为参数。在代码中,$Allname[2]表示数组中的一个值,而不是一个键。

解决方法:可以使用foreach循环来查找并删除数组中的特定值,但更好的方法是使用array_search()函数来获取"Bill"的键,然后使用unset函数删除该键对应的值。

以下是解决问题的代码示例:

$Allname = array('Harry', 'George', 'Bill', ...);
$key = array_search('Bill', $Allname);
if ($key !== false) {
    unset($Allname[$key]);
}

通过以上的代码,可以找到"Bill"在数组中的键,并使用unset函数将其删除。

0
0 Comments

问题出现的原因是unset( )函数在PHP中不起作用。解决方法是使用正确的语法和语义来删除数组中的元素。在这种情况下,需要删除值为'Bill'的元素。正确的代码应该是unset($Allname[2]);。此外,可以参考一个更详细和更好的解决方案的问题,链接在这里:PHP array delete by value (not key)。感谢所有人的帮助和链接,现在一切都清楚了。我能够通过foreach循环实现我所需要的操作。感谢链接1intello。

0
0 Comments

unset( ) not working PHP问题的出现原因是由于使用unset($arr['key'])语句来删除数组$arr中的元素时,使用的key的值不正确。在这个例子中,数组$arr的键值是0、1等,而不是"Bill"。所以,unset($arr['key'])无法正确删除元素。

要解决这个问题,可以使用array_diff()函数来删除数组中的特定值。具体的解决方法如下:

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

$namesArray = explode(' ', $names);

$namesWithoutBill = array_diff($namesArray, array('Bill'));

通过上述代码,首先将字符串$names按空格分割,并将分割后的结果存储在数组$namesArray中。然后,使用array_diff()函数来删除数组$namesArray中的值为'Bill'的元素,并将结果存储在$namesWithoutBill变量中。这样就成功地删除了数组中的'Bill'元素。

以上就是关于unset( ) not working PHP问题的原因及解决方法的详细说明。通过使用array_diff()函数,我们可以轻松地删除数组中的特定值,避免了使用unset( )函数时可能出现的错误。

0