www.yzc577.comphp 在值中找字串

( www.yzc577.com )

每個用戶有一個欄位叫做skills
可能是 哈囉,你好,再見,不錯,太棒了 但每個人都不太一樣
我要如何找出該欄位的字元
若他的skills欄位有 太棒了 則顯示checked..類似這樣?

補充

<? $skills = $SQLROW['skills'];?>
 <? foreach($t as $key=>$value){  ?>
     <input type="checkbox" name="skills_profile[]" id="profile<? echo $key;?>" value="<? echo $value;?>"
        <? if(strpos($skills,$value))
  {
   echo 'checked';
  }
   ?>>
        <label for="profile<? echo $key;?>"><? echo $value;?></label>
        <? } ?>

明明有哈囉,你好,再見,不錯,太棒了
但是他卻只有 你好,再見,不錯,太棒了 有checked?
這是哪裡有問題?

没太看懂你的意思,不知道这是不是你要的

<?php
$sys_arr = explode(',','哈囉,你好,再見,不錯,太棒了');
$skills = explode(',','你好,再見');
foreach($sys_arr as $v){
    $ck = in_array($v,$skills)?' checked':'';
    echo "<input type='checkbox' value='{$v}'{$ck}>{$v}\n";
}

把你回复的代码中的 strpos($skills,$value) 这个判断改成 if(strpos($skills,$value) !== false) 因为可能匹配位置为 0 的 skills

首先你要知道strpos函数返回的是什么:

strpos() 函数查找字符串在另一字符串中第一次出现的位置。
返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。
注释:字符串位置从 0 开始,不是从 1 开始。

因为你只是 if(strpos($skills,$value)) 所以,你的 哈囉 位置在 0
你需要改成 (当然也可以换成其他写法)

if(strpos($skills,$value) !== false)

参考连接:
http://www.w3school.com.cn/ph…

strops()返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。
如果没找到 needle,将返回 FALSE。

判断语句改成 if(strpos($skills,$value) !== false)

strops函数

写sql语句时 select id from table where skills like ‘%太棒了%’

(看完/读完)这篇文章有何感想! www.yzc577.com的分享…

发表评论

电子邮件地址不会被公开。 必填项已用*标注