2013-06-26 65 views
0

我有一個這樣的陣列:如何從數組中獲得特定值?

$Array = array("0","2","0","5","0"); 

和特定值I要的是2和5,所以該陣列將是這樣的:

$newArray = array("2","5"); 

感謝。

+1

有什麼問題嗎? – faffaffaff

+1

如果你已經有了值,爲什麼你需要從數組中檢索它們? – Jim

+0

'[2,5]'不是「特定值」。您已經過濾陣列中的元素。這種類型的操作稱爲「過濾器」,因爲它會根據給定的規則刪除數組中的某些元素。在這種情況下,該值必須等於2或5. 您可能想要將您的問題更改爲更類似於「如何過濾此數組以僅保留某些給定值?」的內容。 – Peaches491

回答

2

由於"0"falsey你可以使用array_filter刪除所有與陣列中的「0」:

$array = array("0","2","0","5","0","7","0"); 
$newArray = array_filter($array); // newArray is: ["2", "5", "7"] 
+0

謝謝。你讓它簡單:) –

0

所以你基本上只是想從你的數組中刪除零?我認爲這應該工作,你只是傳遞函數的陣列和你想要替換的項目(注意此代碼是未經測試,你可能需要調整它一點)

function array_replace($incomingarray, $tofind) 
{ 
    $i = array_search($tofind, $incomingarray); 
    if ($i === false) { 
     return $incomingarray; 
    } else { 
     unset($incomingarray[$i]); 
     return array_replace($incomingarray, $tofind); 
    } 
} 

$Array = array("0","2","0","5","0"); 
$a = array_replace($Array, 0); 
var_dump($a); 
0

您可以使用array_filter

function fil($var) 
{ 
if($var == 2 || $var == 5) 
return($var); 
} 
$array1 = array(0,2,0,5,0); 
print_r(array_filter($array1, "fil")); 

輸出

Array 
(
[1] => 2 
[3] => 5 
) 

Demo

+1

使用它作爲回調的好解決方案。如果使用變量匹配參數,可能會變得複雜,儘管他必須在動態生成if子句嗎? – Dave