2009-09-03 2 views
0
<?PHP 
$signup_errors = array(); 
$signup_errors['captcha'] = 'test 1'; 
$signup_errors['something'] = 'test 2'; 
$signup_errors['another'] = 'test 3'; 
$signup_errors['getthepoint'] = 'test 4'; 

//this would work 
if (isset($signup_errors) && in_array('test 4', $signup_errors)){ 
    echo 'it works'; 
} 

//However I need something like this to work 
if (isset($signup_errors) && in_array('captcha', $signup_errors)){ 
    echo 'it works'; 
} 
?> 

конечная цель здесь является, чтобы иметь HTML формы, где я могу изменить название CSS DIV класса есть элемент массива ошибок, которые существуют, поэтому, если он возвращается с этойКак это сделать с помощью массивов PHP?

$signup_errors['captcha'] = 'Please enter the correct security code'; 

Тогда на форма подал я бы что-то вроде этого

<input type="text" class="textarealong <?PHP if (isset($signup_errors) && in_array('captcha', $signup_errors)){echo 'error-class';}?> " value=''> 

ответ

2

Вместо in_array используйте array_key_exists

<input type="text" class="textarealong <?PHP if (isset($signup_errors) && array_key_exists('captcha', $signup_errors)){echo 'error-class';}?> " value=''> 
1

Хорошо, я думаю, что я получил его, ключ PHP существует, кажется, сделать трюк

<?php 
$search_array = array('first' => 1, 'second' => 4); 
if (array_key_exists('first', $search_array)) { 
    echo "The 'first' element is in the array"; 
} 
?> 
1

В вашем случае я бы использовал

isset($search_array['first']); 

вместо

array_key_exists('first', $search_array); 

Это, вероятно, быстрее и более удобным для чтения для меня.

Смежные вопросы