使用php将字符串转换为2D数组

时间:2012-01-09 08:52:37

标签: php

假设我有一个如下字符串:

   01,03,02,15|05,04,06,10|07,09,08,11|12,14,13,16 

如何使用php将其转换为如下所示的2D数组?:

   01 03 02 15
   05 04 06 10 
   07 09 08 11  
   12 14 13 16 

任何帮助将不胜感激,谢谢!

5 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

$tmp  = explode( '|', $str );
$data = array();

foreach ( $tmp as $k => $v )
{
  $data[] = explode( ',', $v );
}

explode()是你的朋友。

答案 1 :(得分:1)

$str = '01,03,02,15|05,04,06,10|07,09,08,11|12,14,13,16';
$arr = array_map(function($val) { return explode(',',$val); },explode('|',$str));

var_dump($arr);

PHP> = 5.3.0

答案 2 :(得分:1)

这是一个快速选项,需要PHP 5.3.0或更高版本(无论如何都应该使用)。

$string = '01,03,02,15|05,04,06,10|07,09,08,11|12,14,13,16';
$array  = array_map('str_getcsv', explode('|', $string));

答案 3 :(得分:0)

$arr1 = explode("|",$yourString);
$arr2 = array();
for ($i=0;$i<count($arr1);$i++)
    $arr2[] = explode(",",$arr1[i]);

答案 4 :(得分:0)

$str = "01,03,02,15|05,04,06,10|07,09,08,11|12,14,13,16 ";
$array = explode('|', $str);
$final_array = array();
foreach($array as $val)
{
    array_push($final_array, explode(',', $val));
}