在PHP中,explosion (implode())有意义吗?


Does explode(implode()) make any sense in PHP?

我在phoenix测试套件中找到了这段代码:

$os_packages_to_install = explode(' ', implode(' ', $os_packages_to_install));

我以前看过,但我不明白它的意义。它是做什么的?

它将返回一个数组,但与$os_packages_to_install的不同之处在于,如果$os_packages_to_install的值包含空格,它也将被分割。

:

["hjk jklj","jmmj","hl mh","hlm"]

内爆了:

"hjk jklj jmmj hl mh hlm

explosion again will give:

["hjk","jklj","jmmj","hl","mh","hlm"]

在google上搜索这一行,结果是:

重建数组索引操作系统包XML标签提供了多个单个字符串中的包名

基本上,这是因为原始数组可能看起来像这样:

$os_packages_to_install = array(
  'package1',
  'package2 package3'
);

当它需要看起来像这样时:

$os_packages_to_install = array(
  'package1',
  'package2',
  'package3'
);

来源:http://www.phorogit.com/index.php?p=phoronix-test-suite.git& dl = plain& h = 7 c5f0c0cf91dc61c1f220b0871040d4441836436。

是,如果数组$os_packages_to_install中的字符串有空白字符

可以,如果输入数组是关联数组:

$os_packages_to_install = array('key'=>'val1','val2','val3');
var_dump($os_packages_to_install);
var_dump(explode(' ', implode(' ', $os_packages_to_install)));

输出是:

array(3) { ["key"]=> string(4) "val1" [0]=> string(4) "val2" [1]=> string(4) "val3" }
array(3) { [0]=> string(4) "val1" [1]=> string(4) "val2" [2]=> string(4) "val3" } 

如果字符串包含类似空格$str[0] = "abcd bce";$str[1] = " bde sdf";如果有人执行你的命令,那么。

将被拆分为包含4条记录的数组,而不是拆分为2条记录。