如何在 Codeigniter 中分解字符串

How to Explode the string in Codeigniter

我想探索以下字符串,我使用 foreach 循环在 CodeIgniter 中从数据库中获取这些字符串。实际上,我使用双定界符来区分 SQL 和 MySQL 等标签,因为 LIKE "%sql%" 也会产生 return MySQL 结果。应该像“%|sql|%”

|login||background||signup||material-design|

我尝试了以下代码但没有成功。

$snippettag_id = explode('|', $snippet_tags);

    foreach($snippettag_id as $tag_id) {
    $tag_name = $tag_id;
    $this->db->or_like('snippets_name', $tag_name);
    }

您的问题与文本中的 delimitersymbol 相同,您需要在 dbexplode() 中使用 replace 分隔符,试试将 , 而不是 | 保存为分隔符

$str = "|sql|,|Mysql|,|php|,|C#|,|C++|";//DB string
echo'<pre>';echo $str;
$strArray = explode(',', $str);
echo'<pre>';print_r($strArray);die;

输出:

|sql|,|Mysql|,|php|,|C#|,|C++|

Array
(
    [0] => |sql|
    [1] => |Mysql|
    [2] => |php|
    [3] => |C#|
    [4] => |C++|
)

除了解决方案

you should probably normalize your database it will more reliable and easy to do searching in future

如果您需要如上所述的输出而不使用 , 字符,那么您仍然可以轻松做到这一点

首先运行你的查询正常,没有任何修改所以结果将是

$result = "login background signup material";

之后使用 explode with,

$snid = explode("," , $result);

现在你需要|在您的结果中,您可以执行以下操作

$finalresult = str_ireplace(",", "|", "$snid");

现在输出有 |而不是