是否有一个PHP函数可以从数组中删除特定的元素?
例如,我有一个带有值的数组(A
),还有另一个数组(B
)需要删除值。
想要从数组B
中删除数组A
中的值吗?
是否有一个PHP函数可以从数组中删除特定的元素?
例如,我有一个带有值的数组(A
),还有另一个数组(B
)需要删除值。
想要从数组B
中删除数组A
中的值吗?
array_diff()
函数。$new_array = array_diff($arrayB, $arrayA);
$arrayA
中的元素的数组。array_diff_assoc()
。unset($array[$key]);
这取决于你所说的“删除”是什么意思。
您可以使用unset()函数从数组中删除键,但这不会重新索引它。例如,如果你有:
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
然后您调用
unset($a[2]);
(1 => 'one', 3 => 'three');
// Your array
$list = array("apple", "orange", "strawberry", "lemon", "banana");
// Initilize what to delete
$delete_val = array("orange", "lemon", "banana");
// Search for the array key and unset
foreach($delete_val as $key){
$keyToDelete = array_search($key, $list);
unset($list[$keyToDelete]);
}
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
$list = array('foo', 'bar', 'yay', '\o/');
$toremove = 'foo';
unset($list[array_search($toremove, $list)]);
虽然这会在要移除的元素不在数组中时引发错误。
另一种解决方案,但从性能上来说并不是最优化的是:
$list = array('foo', 'bar', 'yay', '\o/');
$toremove = 'foo';
$list = array_flip($list);
unset($list[$toremove]);
$list = array_flip($list);