我有这种格式的mysql字符串
1.name.2.name,3.name.8.name
我有这个
$ ARR =分裂( “”,$ STR); $计数=计数($ ARR);
这将生成2个数组,但我想将其逐项列出
for ($i=0;$i<$count;$i++){
echo $arr[$i];
// when $i=0 here must be 1 name 2 name and when $i=1 3 name 8 name
}
这仍然是正确的,但现在我想要来自$arr[$i]
的内部循环写入值,我需要将它们拆分为dott。有可能吗?
答案 0 :(得分:3)
您不需要任何循环
$string = "1.name.2.name,3.name.8.name";
$array = explode(",", $string);
var_dump($array);
输出
array (size=2)
0 => string '1.name.2.name' (length=13)
1 => string '3.name.8.name' (length=13)
如果你想进一步打破它
$array = array_map(function($v){return explode(".", $v); },$array);
var_dump($array);
输出
array (size=2)
0 =>
array (size=4)
0 => string '1' (length=1)
1 => string 'name' (length=4)
2 => string '2' (length=1)
3 => string 'name' (length=4)
1 =>
array (size=4)
0 => string '3' (length=1)
1 => string 'name' (length=4)
2 => string '8' (length=1)
3 => string 'name' (length=4)
答案 1 :(得分:0)
使用explode()
按,
和str_replace()
进行拆分,以移除.
$string = "1.name.2.name,3.name.8.name";
$arr = explode(",", $string);
for ($i=0;$i<count($arr);$i++){
echo str_replace("."," ",$arr[$i]);}
答案 2 :(得分:0)
使用正则表达式替代:
$string = "1.name.2.name,3.name.8.name";
preg_match_all('|(\d+)\.([^.,]+)[,.]?|', $string, $matches);
$matches = array_combine($matches[1], $matches[2]);
print_r($matches);
输出:
Array
(
[1] => name
[2] => name
[3] => name
[8] => name
)