2014-09-24 78 views
0

我有一個值的數組,我從表單中獲取並存儲在數組中的每個值中。我想檢查這些值是否等於我最初設定的值,如果不是,我將它們替換爲無效值。這是爲了防止用戶更改值並允許他們通過某種網絡工具(如Chrome F12)提交。替換數組中的元素?

foreach($hear_array as $val) 
{ 
    $newval = "Invalid"; 
    if($val != "Value1" || $val != "Value2" || $val != "Value3" || $val != $_POST['select_other']) 
    { 
     array_replace($hear_array, $newval); 
    }   
} 

至於這段代碼應該檢測是否在$hear_array值不等同於我的東西設置爲一個值。我也試過這個:

array_replace($hear_array[$val], $newval); 

哪一個也沒有真正的工作。

+2

爲什麼你需要一個「替換」功能?您已經在循環數組。只需根據您所在的位置索引來設置值。 – durbnpoisn 2014-09-24 17:09:35

+0

@durbnpoisn我在如何做到這一點上遇到了麻煩。 '$ hear_array [$ val] = $ hear_array [$ newval]'? – ckmartin 2014-09-24 17:13:14

回答

0

你可以嘗試這樣的事情(正如我的評論中所建議的那樣)。添加一個指針來跟蹤你在數組中的位置。然後,當你找到你想要改變的東西時,在你的索引中設定你的價值。

$arrayPointer = 0; 

foreach($hear_array as $val) { 
    $newval = "Invalid"; 
    if($val != "Value1" || $val != "Value2" || $val != "Value3" || $val != $_POST['select_other']) { 
     $hear_array[$arrayPointer] = $newval); 
    } 
    $arrayPointer++; 
} 
+0

謝謝,這就是我一直在尋找的! – ckmartin 2014-09-24 17:27:04

0

使用array_search獲取密鑰,然後替換值。

$key = array_search($needle, $hear_array); 
if ($key !== false) { 
    $hear_array[$key] = $newval; 
}