喜欢搜索每个逗号分隔值的前三个字符

时间:2013-12-17 05:44:39

标签: php sql

在字符串中,

$string_example = "cats, dogs, horses"

我想

$string_truncated = "cat, dog, hor"

即。获取每个逗号分隔值的前三个字符

稍后,我将在SQL LIKE语句中使用它来限制至少与给定的前三个字符匹配的搜索结果(我不能完全写入文本,因为我想保留我的外键约束,并且可以&#39 ;放弃我的数据库引擎)

4 个答案:

答案 0 :(得分:2)

$string_example = "cats, dogs, horses";
$arr = explode(',',$string_example);
$newArr = array();
foreach($arr as $val){
  if($val != ''){
     $newArr[] = substr(trim($val),0,3); 
  }
}
$newStr = implode(', ',$newArr);
echo $newStr;

答案 1 :(得分:1)

你可以这样做:

<?php
$string_example = "cats, dogs, horses";
$arr = explode(",", $string_example);
$newArr = array();
foreach($arr as $value) $newArr[] = substr(trim($value), 0, 3);
$newString = implode($newArr,", ");
echo $newString;
?>

输出:

cat, dog, hor

答案 2 :(得分:0)

使用array_mapsubstrexplodeimplode

$string_example = "cats, dogs, horses"

$truncated_ary = array_map(
                    function($search_string){
                       return substr($search_string, 0, 3)
                    }, 
                    explode(',', $string_example)
                 );

$string_truncated = implode(',', $truncated_ary);

答案 3 :(得分:0)

$string_example = "cats, dogs, horses";
$words = explode(',',$string_example);
$result = array();
foreach($words as $val){
  if($val != ''){
     $result[] = substr(trim($val),0,3); 
  }
}
$newStr = implode(', ',$result);
echo $newStr;