2016-08-30 3 views
0

Я хочу проверить, существует ли значение в цикле do while после помещения его в массив.проверить, существует ли значение в массиве php do while loop

т.е.

<?php 
$query_tags = mysqli_query($link,"SELECT * FROM units "); 
//getting values from db 

$list = array(); 
while ($row = mysqli_fetch_assoc($query_tags)) { 
    $list[] = $row['code']; 
} 

$mylist = '[' . implode(',', $list) . ']' 

echo $mylist; 
//result will look like this: [kis,his,mat,geo] 
?> 

Теперь я хочу, чтобы проверить, если слово кис существует в списке выше

Я попытался

<?php 
if (array_key_exists("kis",$list)) 
    { 
    echo "Key exists!"; 
    } 
else 
    { 
    echo "Key does not exist!"; 
    } 

    ?> 

не работает. любая помощь по этому поводу? или любой другой лучший подход

+1

Ну, вы распечатали значения своего массива, а затем вы проверили, существует ли ключ. Таким образом, вы, вероятно, захотите проверить, есть ли у вас это значение в вашем массиве с 'in_array()' – Rizier123

+0

@ Rizier123, у вопроса может быть одинаковый ответ, чтобы он дублировался, но я не рассматриваю его как дубликат этого вопроса. –

+0

Вы спрашиваете, как вы может проверить, существует ли значение в массиве, и дубликат точно показывает вам, как это сделать. – Rizier123

ответ

1

Необходимо изменить ваше состояние на if (in_array("kis",$list)) , поскольку ранее вы искали в массиве ключом, а не значением.

1

В вашем массиве "kis" является value не key. Ваши ключи: 0,1,2,3

Вы должны использовать функцию PHP in_array. Он проверяет значение.

if (in_array("kis",$list)){ 
    echo "Value exists!"; 
} 
else { 
    echo "Value does not exist!"; 
} 
+0

ravi Я считаю, что вам придется изменить '$ list, [" kis "]' to '" kis ", $ list', так как я приносит ошибку. –

+0

@krushiovida: ohh !! виноват. Спасибо, что указали это. –