2014-11-20 86 views
0

例如,如果我有以下的数组:如何从PHP中的数组中选择等于某个特定值的键?

$numbers=array(
"A"=>$value1, 
"B"=>$value2, 
"C"=>$value3, 
"D"=>$value4, 
"E"=>$value5, 
"F"=>$value6, 
"G"=>$value7, 
); 

和如果某些值变量等于0,其余的是等于1,我怎样才能选择哪些值相等的键,例如为0?

+0

您可以使用[array_filter(http://www.php.net/array_filter)测试任何键/值,并移除任何不测试匹配。这也适用于数组的副本,因此它不会破坏原始数据。 – 2014-11-20 18:59:36

回答

0
$result = []; 

foreach($numbers as $id => $number) { 

    if($number ==0) 
     $result[$id] = $number; 

} 
+0

这工作对我来说,但我需要改变到第一行:$ result = array();因为我得到以下错误: 解析错误:语法错误,意外'[' 谢谢! – dream333r 2014-11-20 19:29:38

+0

@ dream333r对不起,[]是用于新版PHP版本的数组。 5.5我认为。这些天我没有使用任何旧的东西。 – Jono20201 2014-11-20 20:04:38

1

试试这个:

$all_zeros = array_filter($numbers); 
$all_ones = array_diff($numbers, $all_zeros); 

您也可以使用自定义过滤器的功能如下图所示:

function custom_filter($numbers, $targetValue) { 
    return array_filter($numbers, function ($i) use ($targetValue) { 
     return $targetValue == $i; 
    }); 
} 

编号:

  1. array_filter
  2. array_intersect
  3. PHP Anonymous function
相关问题