Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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
Php 将字符串分解为二维数组_Php_Arrays_String_Multidimensional Array_Split - Fatal编程技术网

Php 将字符串分解为二维数组

Php 将字符串分解为二维数组,php,arrays,string,multidimensional-array,split,Php,Arrays,String,Multidimensional Array,Split,假设我有一根这样的绳子 苹果:纸:红色,梨:石头:蓝色,桃:剪刀:绿色 如何将其分解为多维数组?你能做一个嵌套的分割循环吗?类似于在循环中拆分逗号上的字符串,然后再拆分冒号上的字符串。如何以这种方式使用explode?我一定错过了什么明显的东西。最终结果应该是这样的 [0][0]=苹果[0][1]=梨[0][2]=桃 [1] [0]=纸[1][1]=石头[1][2]=剪刀 [2] [0]=红色[2][1]=蓝色[2][2]=绿色 谢谢。您可以多次调用explode: $string = 'app

假设我有一根这样的绳子

苹果:纸:红色,梨:石头:蓝色,桃:剪刀:绿色

如何将其分解为多维数组?你能做一个嵌套的分割循环吗?类似于在循环中拆分逗号上的字符串,然后再拆分冒号上的字符串。如何以这种方式使用explode?我一定错过了什么明显的东西。最终结果应该是这样的

[0][0]=苹果[0][1]=梨[0][2]=桃

[1] [0]=纸[1][1]=石头[1][2]=剪刀

[2] [0]=红色[2][1]=蓝色[2][2]=绿色


谢谢。

您可以多次调用explode:

$string = 'apple:paper:red,pear:rock:blue,peach:scissors:green';
$result = array();
foreach (explode(',', $string) as $piece) {
    $result[] = explode(':', $piece);
}
试一试:

$string = 'apple:paper:red,pear:rock:blue,peach:scissors:green';
foreach (explode(',', $string) as $key=>$piece) {
  foreach (explode(':', $piece) as $k=>$column) {
    $result[$key][$k] = $column;
  }
}

可能有助于让它如你所愿。(我已经测试过了,它对我有效;)

这确实会将字符串分割成一个2d数组,但内容没有按照所需的方式进行排序。结果是“00苹果01纸02红”,而不是“00苹果01梨02桃”。是否需要某种预排序?