Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
explode(infrade())在PHP中有意义吗?_Php_Arrays - Fatal编程技术网

explode(infrade())在PHP中有意义吗?

explode(infrade())在PHP中有意义吗?,php,arrays,Php,Arrays,我在以下文件中找到了这段代码: 我以前见过,但我看不出有什么意义。它做什么?是的,如果数组$os\u packages\u to\u install中的字符串包含空格字符。它将返回一个数组,但与$os\u packages\u to\u install不同的是,如果$os\u packages\u to\u install的值包含空格,它也将被拆分 因此: 内爆产生: "hjk jklj jmmj hl mh hlm 再次爆炸将产生: ["hjk","jklj","jmmj","hl","mh

我在以下文件中找到了这段代码:


我以前见过,但我看不出有什么意义。它做什么?

是的,如果数组
$os\u packages\u to\u install
中的字符串包含空格字符。

它将返回一个数组,但与
$os\u packages\u to\u install
不同的是,如果
$os\u packages\u to\u install
的值包含空格,它也将被拆分

因此:

内爆产生:

"hjk jklj jmmj hl mh hlm
再次爆炸将产生:

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

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

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

谷歌搜索该行时发现:

重新生成数组索引,因为 OS包XML标记提供多个 单个字符串中的包名称

基本上,这是因为原始数组可能如下所示:

$os_packages_to_install = array(
  'package1',
  'package2 package3'
);
$os_packages_to_install = array(
  'package1',
  'package2',
  'package3'
);
当它需要看起来像这样时:

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

来源:.

如果字符串包含空格,如 $str[0]=“abcd bce”; $str[1]=“bcde sdf”; 如果有人执行了你的命令


它将被分成4条记录的数组,而不是分成2条

正如下面其他人指出的那样,数组将被重新索引。