2014-11-20 77 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
相關問題