cgft 发表于 2014-4-21 10:33:44

咨询:通达字符串查找函数

通达提供的find_id($STRING, $ID)函数只能在字符串$STRING中查找子串$ID。

如果有字符串:$STRING   //以英文逗号(,)连接的M个ID值的一个字符串,如a,b,c,d,e,
子字符串:$subSTRING   //以英文逗号(,)连接的N个ID值的一个子字符串,如g,d,f,
判断字符串$STRING中是否有包含子字符串$subSTRING中的某个ID值,函数是什么?
如上例,字符串$STRING包含有ID值d,返回TRUE或‘d’;若$STRING=‘g,k,f,’,则返回FALSE或空字串。

通达赵晓波 发表于 2014-4-22 23:05:53

您好,建议您对$subSTRING按照(,)进行切割成数组,然后循环用find_id($STRING,$subSTRING($i))来判断两个字符串中共同的元素。

cgft 发表于 2014-4-24 16:15:58

本帖最后由 cgft 于 2014-4-24 16:37 编辑

谢谢


function Like_ID($STRING, $subSTRING) {
    $subSTRING_ARR= explode(',', $subSTRING);
    foreach ($subSTRING_ARR as $sub_ID) {
      if($sub_ID=='' || $sub_ID==',') return FALSE;
      $STRING= ltrim($STRING, ',');
      if(substr($STRING,-1) != ',') $STRING.= ',';
      if(strpos($STRING, ','.$sub_ID.',') > 0) return TRUE;
      if(strpos($STRING,$sub_ID.',') === 0) return TRUE;
      if(!strstr($sub_ID, ',') && $STRING == $sub_ID) return TRUE;
    }
    return FALSE;
}
页: [1]
查看完整版本: 咨询:通达字符串查找函数