php - 字符串拆分 PHP
问题描述
我想将一根绳子分解成不同的部分,由于绳子的性质,我无法完全理解如何去做或者如果可能的话。
下面是我试图分解的字符串:
"'1,2,3,4','2,4,5,6,4',NULL, NULL,NULL ,'2,3,4,5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL"
我喜欢它:
'1,2,3,4',
'2,4,5,6,4',
NULL,
NULL,
'2,3,4,5'
我正在考虑做这样的事情:
<?php
$test = 'CALL sp_advert_search_load(\'1,3,4,5\',\'2,4,3\',NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)';
$test1 = explode( '(',$test);
$test1 = explode( ',',$test1[1]);
foreach ($test1 as $food){
echo $food."<br />";;
}
?>
然后尝试以某种方式使用 ' 和起点和终点将数组重新构建为字符串。
有人对任何更好的方法来解决这个问题有任何想法吗?
解决方案
您似乎有两个问题,但这无论如何都会将其分为两部分。
首先是从 中提取参数部分CALL
,这会找到第一个(
并获取字符串的其余部分。然后它用来rtrim()
去除尾随)
(如果有空格,也有空格)。
第二部分是将字符串拆分为每个参数。因为它现在实际上是一个 CSV,所以我用str_getcsv()
a 作为附件进行拆分以'
将组保持在一起......
$test = 'CALL sp_advert_search_load(\'1,3,4,5\',\'2,4,3\',NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)';
$params = rtrim(substr($test, strpos($test, "(") + 1), " )");
print_r(str_getcsv($params, ",", "'"));
给...
Array
(
[0] => 1,3,4,5
[1] => 2,4,3
[2] => NULL
[3] => NULL
[4] => NULL
[5] => NULL
[6] => NULL
[7] => NULL
[8] => NULL
[9] => NULL
[10] => NULL
[11] => NULL
[12] => NULL
[13] => NULL
[14] => NULL
[15] => NULL
[16] => NULL
[17] => NULL
[18] => NULL
[19] => NULL
[20] => NULL
[21] => NULL
[22] => NULL
[23] => NULL
[24] => NULL
[25] => NULL
[26] => NULL
[27] => NULL
[28] => NULL
[29] => NULL
[30] => NULL
)
推荐阅读
- c - 我对 C 中的数组有疑问(Hackerearth - Find Product)
- android - Android模拟器截图分辨率与虚拟设备分辨率不匹配
- jenkins - 执行声纳扫描仪詹金斯
- json - 断言 Json 验证错误不起作用
- qb64 - DOSbox 中 QB 中 TIME$ 中的奇怪字符(Linux 与 dos)
- r - 我想获得 R 代码多面条形图
- python - gensim.models.Word2Vec 方法的“iter”参数是遍历整个语料库还是一次传递给它的句子?
- python - 如何在python中创建带有标题和正文的xml
- r - 如何在 crrri 异步函数中设置 chrome bin?
- windows - 如何正确运行命令列表,下一个 cmd 在哪里等到当前 cmd 完成?