问题描述:

EDIT: SOLVED - works as expected. Issue was with $search variable. Thanks for all of your help.

I have a typical WHILE that looks like this:

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

In my $row, I have a user_name key that looks like $row["user_name"].

I have a variable called $search.

Theoretically, $search could be in another key in the $row array, for example is could also be in $row["user_id"].

I'm trying to use stripos to see if there's a non-case-sensitive instance where $search is "like", or in the key, $row["user_name"].

I've even tried storing $row["user_name"] in a separate variable.

Basically.

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

echo("working");

}

This never happens. Please help!

Edit:

Let me rephrase.

All I need to do is see if the $row["user_name"] CONTAINS what's in the string variable $search.

I've tried to convert $row["user_name"] into an array, a string, etc and tried in_array and stripos and nothing works.

The below will work:

if (stripos("hey you guys","guys")){

echo("worked");

}

But what I need is

if (stripos($row["user_name"],$search)){

echo("worked");

}

Edit:

var_dump looks like

array(2) { ["user_id"]=> string(3) "133" ["user_name"]=> string(3) "mrp" }

Edit:

I already verified that both $row["user_name"] and $search are strings so I don't get the issue.

网友答案:
<?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';
    }
?>
网友答案:

When you use fetch_assoc, it returns not an array, but an object. So try different syntax:

stripos($row->user_id, $search) 
网友答案:
$string = str_replace($search,"",$row['user_id']);
$ctr = count($string);
   if($ctr>0) {echo 'found!';}
   else {echo 'not found!';}
相关阅读:
Top