如何在 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);
}
您的问题与文本中的 delimiter
和 symbol
相同,您需要在 db
和 explode()
中使用 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");
现在输出有 |而不是
我想探索以下字符串,我使用 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);
}
您的问题与文本中的 delimiter
和 symbol
相同,您需要在 db
和 explode()
中使用 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");
现在输出有 |而不是