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