【问题标题】:Explode a string into a 2d array将字符串分解为二维数组
【发布时间】:2011-11-13 08:13:21
【问题描述】:

假设我有一个这样的字符串。

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

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

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

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

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

谢谢。

【问题讨论】:

    标签: php arrays string multidimensional-array split


    【解决方案1】:

    试一试:

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

    可能有助于让它随心所欲地出现。 (我已经测试过,它对我有用;))

    【讨论】:

      【解决方案2】:

      你可以多次调用explode:

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

      【讨论】:

      • 这确实将字符串拆分为一个二维数组,但内容没有以所需的方式排序。它以“00 apple 01 paper 02 red”而不是“00 apple 01 pear 02 peach”结束。是否需要某种预分类?
      猜你喜欢
      • 2019-02-18
      • 1970-01-01
      • 2019-01-23
      • 2023-03-08
      • 2012-01-25
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多