2011-09-08 175 views
2

可以说我有这样的字符串。将一个字符串分解成一个二维数组

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

你会如何爆发成一个多维数组呢?你能做一个嵌套的分割循环吗?像逗号分割字符串,然后再次在循环内的冒号。你如何以这种方式使用爆炸?我必须失去一些明显的东西。最终结果应该是这样的。

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

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

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

感谢。

回答

8

您可以拨打爆炸多次:

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

这会将字符串拆分为2d数组,但内容不会按照所需方式排序。最终以“00苹果01纸02红”代替“00苹果01梨02桃”。需要某种预先排序吗? – oljones

0

这给一展身手:

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

可能有助于使出来,只要你想。 (我已经测试过,并且适用于我;))

相关问题