具有多个定界符的单线爆炸

时间:2019-07-13 17:54:03

标签: php explode

是否有一个好看的单线爆炸以下内容:

 $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])上循环,但是我想知道是否有更好的方法(不循环)。

2 个答案:

答案 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