【问题标题】:convert string to 2D array using php使用php将字符串转换为二维数组
【发布时间】:2025-12-13 05:00:01
【问题描述】:

假设我有一个像下面这样的字符串:

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

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

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

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

【问题讨论】:

标签: php


【解决方案1】:

这应该可以解决问题:

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

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

explode() 是你的朋友。

【讨论】:

    【解决方案2】:
    $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

    【讨论】:

      【解决方案3】:

      这是一个快速选项,需要 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));
      

      【讨论】:

        【解决方案4】:
        $arr1 = explode("|",$yourString);
        $arr2 = array();
        for ($i=0;$i<count($arr1);$i++)
            $arr2[] = explode(",",$arr1[i]);
        

        【讨论】:

          【解决方案5】:
          $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));
          }
          

          【讨论】: