是否有一个好看的单线爆炸以下内容:
$my_string = '0:abcd1234,0:wxyz9876,1:defg5678';
具有预期的结果:
array(
[0] => array([0] => 0, [1] => 'abcd1234'),
[1] => array([0] => 0, [1] => 'wxyz9876'),
[2] => array([0] => 1, [1] => 'defg5678')
)
我知道我可以$my_array = explode(',', $my_string)
然后在检索到的数组和explode(':', $my_array[$i])
上循环,但是我想知道是否有更好的方法(不循环)。
答案 0 :(得分:2)
无需使用循环,只需使用array_map:
array_map(function($str) {return explode(':',$str);}, explode(",",$my_string));
如果您使用的是PHP 7.4,它将变得更短:
array_map(fn($str) => explode(':',$str), explode(",",$my_string));
答案 1 :(得分:2)
使用array_map()
以一种衬里和美观的方式进行操作,
$my_array = array_map(function($val) {return explode(':', $val);}, explode(',', $my_string));
工作演示: https://3v4l.org/ti3Aq