2014-09-24 2 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

+0

@durbnpoisn У меня возникают проблемы с тем, как это сделать. '$ hear_array [$ val] = $ listen_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; 
} 
Смежные вопросы