在PHP中爆炸(implode())是否有意义?

时间:2011-07-07 07:23:27

标签: php arrays

我在Phoronix Test Suite

中找到了这段代码
$os_packages_to_install = explode(' ', implode(' ', $os_packages_to_install));

我之前见过它,我不认为这是重点。它做了什么?

5 个答案:

答案 0 :(得分:8)

它将返回一个数组,但与$os_packages_to_install的区别在于,如果$os_packages_to_install的值包含空格,则它也会被拆分。

这样:

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

inplode给出:

"hjk jklj jmmj hl mh hlm

再次爆炸将给出:

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

答案 1 :(得分:6)

谷歌搜索该行的想法:

  

重建数组索引   OS包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=7c5f0c0cf91dc61c1f220b0871040d4441836436

答案 2 :(得分:1)

是的,如果数组$os_packages_to_install中的字符串包含空白字符。

答案 3 :(得分:1)

如果输入数组是关联的,则可能是

$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" } 

答案 4 :(得分:0)

如果string包含像。的空格 $ str [0] =“abcd bce”; $ str [1] =“bcde sdf”; 然后如果你执行了你的命令。

它将以4个记录分组,而不是分成2个。