用于带有多个定界符的爆炸的一行
One-liner for explode with multiple delimiters
有没有好看的单线爆下面:
$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])
,但我想知道是否有更好看的方法(没有循环)来做到这一点。
不用循环,直接用array_map:
array_map(function($str) {return explode(':',$str);}, explode(",",$my_string));
如果您使用的是 PHP 7.4,它会变得更短:
array_map(fn($str) => explode(':',$str), explode(",",$my_string));
通过使用 array_map()
、
用一个衬垫和更好看的方式完成
$my_array = array_map(function($val) {return explode(':', $val);}, explode(',', $my_string));
工作演示: https://3v4l.org/ti3Aq
有没有好看的单线爆下面:
$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])
,但我想知道是否有更好看的方法(没有循环)来做到这一点。
不用循环,直接用array_map:
array_map(function($str) {return explode(':',$str);}, explode(",",$my_string));
如果您使用的是 PHP 7.4,它会变得更短:
array_map(fn($str) => explode(':',$str), explode(",",$my_string));
通过使用 array_map()
、
$my_array = array_map(function($val) {return explode(':', $val);}, explode(',', $my_string));
工作演示: https://3v4l.org/ti3Aq