检查特定数组键中是否存在变量(PHP,MYSQLI)

时间:2015-09-21 06:42:10

标签: php arrays search

编辑:已解决 - 按预期工作。问题是使用$ search变量。感谢您的所有帮助。

我有一个典型的WHILE,看起来像这样:

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

在我的$行中,我有一个看起来像$ row [" user_name"]的user_name键。

我有一个名为$ search的变量。

理论上,$ search可以在$ row数组中的另一个键中,例如也可以在$ row中[" user_id"]。

我尝试使用stripos来查看是否存在非大小写敏感的实例,其中$ search是"喜欢",或者在键中,$ row [&#34 ; 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");
    }

编辑: var_dump看起来像 array(2){[" user_id"] => string(3)" 133" [" USER_NAME"] => string(3)" mrp" }

编辑: 我已经验证$ row [" user_name"]和$ search都是字符串,所以我不会遇到问题。

3 个答案:

答案 0 :(得分: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';
    }
?>

答案 1 :(得分:0)

使用fetch_assoc时,它不返回数组,而是返回一个对象。 所以尝试不同的语法:

stripos($row->user_id, $search) 

答案 2 :(得分:-1)

$string = str_replace($search,"",$row['user_id']);
$ctr = count($string);
   if($ctr>0) {echo 'found!';}
   else {echo 'not found!';}