日期:2014-05-17  浏览次数:20772 次

in_array变量赋值被当成一个值,求解决方法
in_array变量赋值被当成一个值,求解决方法
具体请看以下代码:

<?php
//$meb['learned']数据库取值为:排舞,街舞,主持人,讲师
$learn = explode(',',$meb['learned']);
//echo $learn[0].$learn[1].$learn[2].$learn[3].$learn[4].$learn[5];
$strp = str_replace(',', '", "', $meb['learned']);
$strp2 = '"'.$strp.'"';
$people = array($strp2);
print_r($people); 
//以上输出结果为 Array ( [0] => "排舞", "街舞", "主持人", "讲师" ) 
if (in_array('讲师',$people)){
echo "Match found";
}
else
{
echo "Match not found";
}
?>

in_array的判断结果输出为"Match not found",也即是说讲师没包含在$people中,可能原因是被当成一个整体。具体求解决方案,代码该如何优化下

------解决方案--------------------
$learn = explode(',',$meb['learned']); 
$learn 不就是你需要的数组吗

if (in_array('讲师',$learn)){
echo "Match found";
}
else
{
echo "Match not found";
}