如果没有你实际做循环部分,基于array_map+的东西explode应该可以做到; 例如,考虑到您使用的是PHP 5.3:
$str = "A,5|B,3|C,8";
$a = array_map(
function ($substr) {
return explode(',', $substr);
},
explode('|', $str)
);
var_dump($a);
Run Code Online (Sandbox Code Playgroud)
会得到你:
array
0 =>
array
0 => string 'A' (length=1)
1 => string '5' (length=1)
1 =>
array
0 => string 'B' (length=1)
1 => string '3' (length=1)
2 =>
array
0 => string 'C' (length=1)
1 => string '8' (length=1)
Run Code Online (Sandbox Code Playgroud)
当然,这部分代码可以重写为不使用lambda函数,并且使用PHP <5.3 - 但不是很有趣^^
尽管如此,我假设array_map将遍历由explode... 返回的数组的每个元素.因此,即使循环不在您的代码中,仍然会有一个......