[英]Why in_array() is not returning me as true
我有一個MySQLI結果集:
$prems = $mysqli->query($query);
$noofupid = mysqli_num_rows($prems);
我知道找到的行的值為“ CIR”。 接下來,我將該值提取為:
$perm = $prems->fetch_array(MYSQLI_BOTH);
現在,我需要檢查數組中是否設置了“ C”或“ I”或“ R”值:
if($noofupid > 0)
echo in_array("C", $perm);
但是,如果失敗了。
實際上,我的確切條件是:
if( $noofupid > 0 && in_array('C', $perm))
echo '<option value="C" selected>Create</option>';
else
echo '<option value="C">Create</option>';
總會執行else部分。 知道為什么上面的方法沒有產生正確的結果嗎?
===編輯====
echo var_dump($perm) ;
echo var_dump($noofupid);
價值觀:
array (size=2)
0 => string 'CIR' (length=3)
'property_value' => string 'CIR' (length=3)
int 1
null
int 0
null
int 0
null
int 0
null
int 0
null
int 0
null
int 0
null
int 0
null
int 0
您不能對字符串使用in_array(),而必須先將字符串轉換為數組:
$array = str_split("CIR");
您將獲得以下數組:
array(3) {
[0]=>
string(1) "C"
[1]=>
string(1) "I"
[2]=>
string(1) "R"
}
您正在獲取字符串。 因此,您需要分割字符串以使用in_array。
if( $noofupid > 0 && in_array('C', preg_split('//',$perm[0])))
或在字符串中找到字符
if( $noofupid > 0 && false !== strstr($perm[0], 'C'))
親愛的您在$ perm變量中獲得了關聯值,因此您無法通過in_array函數直接匹配數組值。
您可以根據情況匹配陣列鍵。 示例:in_array(“ $ keyofPermVariable”,$ perm)
否則可以通過使用一個功能更像
$perm_result = array_flip($perm);
if($noofupid > 0 && in_array("C", $perm_result))
echo '<option value="C" selected>Create</option>';
else
echo '<option value="C">Create</option>';
array_flip會將鍵更改為value,反之亦然。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.