2014-09-24 2 views
0

폼에서 가져 와서 배열에 각각 값을 저장하는 배열이 있습니다. 이 값이 원래 설정 한 값과 같은지 확인하고 싶지 않은 경우 유효하지 않은 값으로 교체합니다. 이는 사용자가 값을 변경하여 웹 도구 (예 : Chrome F12)를 통해 제출할 수 없게하는 것입니다. $hear_array의 값은 내가 값으로 설정 뭔가 일치하지 않는 경우가 감지합니다 코드의이 부분에 관해서는배열의 요소 바꾸기?

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

. 나는 또한 이것을 시도했다 :

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

실제로 어느 쪽도 일하는 것처럼 보이지 않았다.

+2

"바꾸기"기능이 필요한 이유는 무엇입니까? 이미 배열을 반복하고 있습니다. 자신이있는 위치의 색인을 기준으로 값을 설정하기 만하면됩니다. – durbnpoisn

+0

@ durbnpoisn 어떻게 그 일을하는 데 문제가 있습니다. '$ hear_array [$ val] = $ hear_array [$ newval]'? – ckmartin

답변

0

내 의견에서 제안한대로 시도해 볼 수 있습니다. 배열에있는 위치를 추적 할 포인터를 추가하십시오. 그런 다음 변경하고자하는 것을 찾았 으면 THAT 인덱스에 값을 설정하십시오.

$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

0

array_search를 사용하여 키를 얻은 다음 값을 바꿉니다.

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