我已经将从mySQL查询的一些元素(水果名称)插入到数组中。现在,我想从数组中删除某些项目。我想删除Apple' Apple'和' Orange'如果存在于数组中。这是我尝试过但我收到错误信息。
Array Example:
Array ( [1] => Orange [2] => Apple)
foreach($terms as $k => $v)
{
if (key($v) == "Apple")
{
unset($terms[$k]);
}
elseif( key($v) == "Orange")
{
unset($terms[$k]);
}
}
>>> Warning: key() expects parameter 1 to be array, string given //same error repeated 4 times
我在这里提到了这个链接:How do you remove an array element in a foreach loop? 如果有人能指出我做错了什么,我将不胜感激。
答案 0 :(得分:5)
你有没有尝试过这种方式:
foreach($terms as $k => $v)
{
if ($v == "Apple")
{
unset($terms[$k]);
}
elseif($v == "Orange")
{
unset($terms[$k]);
}
}
答案 1 :(得分:1)
$fr
是您所有水果的实际数组...而您的$rm
是另一个数组,其中包含要从$fr
数组中删除的项目列表。
在foreach
数组中使用$rm
周期,查看$fr
数组中是否存在该元素,如果找到,则unset()
。
<?php
$fr = array('Apple','Orange','Pineapple'); //<-- Your actual array
$rm = array('Apple','Orange'); //<--- Elements to be removed
foreach($rm as $v)
{
if(in_array($v,$fr))
{
unset($fr[array_search($v,$fr)]);
}
}
print_r($fr);
<强> OUTPUT :
强>
Array
(
[2] => Pineapple
)
array_diff()
print_r(array_diff($fr,$rm));