2015-09-21 3 views
0

EDIT: SOLVED - работает как ожидалось. Проблема была с переменной $ search. Спасибо за всю твою помощь.Проверьте, существует ли переменная в определенном ключе ключа (PHP, MYSQLI)

У меня есть типичный WHILE, который выглядит следующим образом:

while ($row = $result->fetch_assoc()) 

В моей $ подряд, у меня есть ключ user_name, который выглядит как $ строки [ "user_name"].

У меня есть переменная, называемая $ search.

Теоретически $ search может быть в другом ключе в массиве $ row, например, также может быть в $ row ["user_id"].

Я пытаюсь использовать stripos, чтобы увидеть, есть ли случай, не учитывающий регистр, где $ search «нравится» или в ключе $ row [«user_name»].

Я даже попытался сохранить $ row ["user_name"] в отдельной переменной.

В принципе.

if(stripos($row["user_id"],$search) !== false){ 
echo("working"); 
} 

Этого никогда не произойдет. Пожалуйста помоги!

Редактировать: Позвольте мне перефразировать.

Все, что мне нужно сделать, это увидеть, если $ row ["user_name"] СОДЕРЖИТ, что находится в строковой переменной $ search.

Я попытался преобразовать $ row ["user_name"] в массив, строку и т. Д., И попытался in_array и stripos, и ничего не работает.

Ниже будет работать:

if (stripos("hey you guys","guys")){ 
    echo("worked"); 
    } 

Но что мне нужно

if (stripos($row["user_name"],$search)){ 
    echo("worked"); 
    } 

Edit: var_dump выглядит массива (2) {[ "user_id"] => строки (3) "133" ["user_name"] => string (3) "mrp"}

Редактировать: Я уже подтвердил, что и $ row ["user_name"], и $ search являются строками, поэтому я не получаю t он выпускает.

+0

У вас есть строка 'var_dump'? Какие ключи есть, какие значения? –

+0

Используйте 'in_array()' – aldrin27

+0

Его довольно неясно. Можете ли вы разместить свои входы вместе с ожидаемым выходом –

ответ

-1
$string = str_replace($search,"",$row['user_id']); 
$ctr = count($string); 
    if($ctr>0) {echo 'found!';} 
    else {echo 'not found!';} 
0
<?php 
    $search = 'bar'; 
    $row = array('id' => 'fOo', 'name' => 'BAr', 'troll' => 'zer'); 

    // Method 1: preg_match 
    $ret = (bool)preg_match('`(' . implode('|', array_values($row)) . ')`i', $search); 

    // Method 2: array_search 
    $ret = array_search(strtolower($search), array_map('strtolower', $row)) !== false; 

    if ($ret) { 
     echo 'found'; 
    } else { 
     echo 'not found'; 
    } 
?> 
+0

Спасибо Navid, но не работал для меня. Я отредактировал свой первоначальный вопрос, надеюсь, иметь больше смысла. –

+0

Можете ли вы отредактировать свой первый пост, добавив в свой код результат следующего кода: ** var_dump ($ row) ** –

+0

вот пример: –

0

При использовании fetch_assoc, он возвращает не массив, а объект. Попробуйте ввести другой синтаксис:

stripos($row->user_id, $search) 
+0

не обязательно –

+0

Я попытался, если (stripos ($ row-> user_id, $ search)! == FALSE) и все еще ничего. –

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