2015-09-21 148 views
0

編輯:已解決 - 按預期工作。問題是使用$ search變量。感謝您所有的幫助。檢查特定數組鍵(PHP,MYSQLI)中是否存在變量

我有一個典型的,而像這樣:

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

在我的$行,我有一個看起來像$行[「USER_NAME」]一個USER_NAME鍵。

我有一個名爲$ search的變量。

理論上,$ search可能位於$ row數組的另一個鍵中,例如也可能位於$ row [「user_id」]中。

我試圖使用stripos來查看是否存在$ search是「like」或key,$ 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"); 
    } 

編輯: 的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

你可以編輯你的第一篇文章,在你的while語句中添加下面的代碼的結果:** var_dump($ row)** –

+0

這裏是一個例子: –

0

當您使用fetch_assoc,它不是返回數組,而是一個對象。 因此嘗試不同的語法:

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

不一定 –

+0

我試過如果(stripos($ row-> user_id,$ search)!== FALSE)仍然沒有任何結果。 –

相關問題