想知道是否有一种简单的方法可以做到这一点......?
我需要搜索数组中不存在的值并返回它们的所有键。如果数组中存在该值,我不想要它们的键。除了in_array()
之外还有为此设置的PHP函数,因为in_array
需要if
语句。寻找能够返回另一个数组中不存在的ALL键数组的东西,其值不等于值。
例如:
$array = array('57323' => '23428340', '90234' => '234820345', '29435' => '78283490', '23484' => '213492945');
$value = '78283490';
$arraySearch = array_search($value, $array);
// This would give me $arraySearch = '29435';
但我不想要这个,我想要所有,但是这个!例如,我希望它返回以下内容:
array('57323', '90234', '23484');
有没有办法快速有效地完成这项工作?
我知道我可以这样做:
$anArray = array();
foreach($array as $key => $val)
{
if ($value != $val)
$anArray[] = $key;
}
但是,有没有更好的方法来做到这一点,而不是循环,我可以在1行上做这个吗?是否有可用于执行此操作的PHP函数?
答案 0 :(得分:1)
在这种情况下,您可以使用array_diff
。考虑这个例子:
$array = array('57323' => '23428340', '90234' => '234820345', '29435' => '78283490', '23484' => '213492945');
$value = '78283490';
$result = array_diff($array, array($value));
print_r($result);
示例输出:
Array
(
[57323] => 23428340
[90234] => 234820345
[23484] => 213492945
)