2015-09-15 4 views
0

Я пытаюсь сравнить 2 значения, одно из которых следует из данных post, а другое - из массива, странно, когда я их сравниваю, все записи показывают, что они не равны, но некоторые из значений имеют равные значения:Ошибка при сравнении строкового значения и строкового значения из массива в PHP

Что мне действительно нужно сделать, так это отключить те значения, которые не равны в отправленных данных.

$a = $_POST['time']; (Value is 01:03) 

$testarray = array("12:30","01:03","03:30"); 

for($x = 0; $x < count($testarray);$x++){ 
    if($a === $testarray[$x]){ 
    echo "ok"; 
    } 
    else 
    { 
    echo "not"; 
    } 
} 

Все мои результаты пока не отображаются, хотя на одном из содержимого массива есть аналогичное значение.

В чем проблема? Я проверяю значения, и типы данных являются как строковыми.

+2

'если (in_array ($ а, $ testarray))'. нет необходимости в цикле. –

ответ

1

использования in_array

$a = $_POST['time']; //(Value is 01:03) 

$testarray = array("12:30","01:03","03:30"); 


if(in_array($a, $testarray)) 
{ 
    echo "ok"; 
} 
else 
{ 
    echo "not"; 
} 
+0

http://php.net/manual/en/function.in-array.php –

+0

это все равно будет работать, даже если массив является многомерным справа? – marchemike

+0

ya. Его поиск всего массива –

1

Простое использование in_array нужно проверить, если значение существует в массиве

$a = $_POST['time']; 
$testarray = array("12:30","01:03","03:30"); 

if (in_array($a, $testarray)) 
    { 
    echo "Match found"; 
    } 
else 
    { 
    echo "Match not found"; 
    }