【问题标题】:Exploding a string twice爆炸字符串两次
【发布时间】:2016-11-23 11:16:24
【问题描述】:

我有一个这样组成的字符串:

87||1|nuovo#88||4|#209|||#89|||#41||1|#5|||#3||1|116#20|||#13||3|#148|||

模式是:
Id1|Mq1|Q.ta1|Tipo1#Id2|Mq2|Q.ta2|Tipo2#Id3|Mq3|Q.ta3|Tipo3等等...

基本上每个项目都有4个属性,用“|”分隔每个项目用“#”分隔

我需要分解字符串以使每个项目的属性都有单个变量。

至于现在我在这里:

<?php
$str = "87||1|nuovo#88||4|#209|||#89|||#41||1|#5|||#3||1|116#20|||#13||3|#148|||#36|||91#29|||68";
$caratteristica = print_r (explode("#",$str));
?>

这给了我这个结果:

Array ( [0] => 87||1|nuovo [1] => 88||4| [2] => 209||| [3] => 89||| [4] => 41||1| [5] => 5||| [6] => 3||1|116 [7] => 20||| [8] => 13||3| [9] => 148||| [10] => 36|||91 [11] => 29|||68 ) 

这个数组的每个元素我需要四个变量
(类似于$id[], $mq[],$qt[],$tipo[])。

【问题讨论】:

  • 太可怕了!!您为什么不让您的生活更轻松,并将数据作为行存储在数据库中?
  • 不幸的是,这是我提供的 XML 文件的一部分,我需要按原样导入它...

标签: php explode


【解决方案1】:
<?php
$input = '87||1|nuovo#88||4|#209|||#89|||#41||1|#5|||#3||1|116#20|||#13||3|#148|||';
$items = explode('#', $input);
$result = [];
# or $id = $mq = $qr = $tipo = [];
foreach ($items as $i) {
  list($id, $mq, $qr, $tipo) = explode('|', $i);
  $result[] = ['id' => $id, 'mq' => $mq, 'qr' => $qr, 'tipo' => $tipo];
  # or $id[] = $id; $mq[] = $mq; $qr[] = $qr; $tipo[] = $tipo;
}

【讨论】:

    【解决方案2】:

    Jiri 代码的视觉变化。

    替换这一行

    list($id, $mq, $qr, $tipo) = explode('|', $i);
    

    list($id[], $mq[], $qr[], $tipo[]) = explode('|', $i);
    

    【讨论】:

      【解决方案3】:

      试试下面的代码

          $str = "87||1|nuovo#88||4|#209|||#89|||#41||1|#5|||#3||1|116#20|||#13||3|#148|||#36|||91#29|||68";
      $caratteristica = explode("#",$str);
      
      foreach ($caratteristica as $value) {
       list($id[], $mq[], $qr[], $tipo[]) = explode('|', $value);
      }
      
      // For check the result
      echo "<pre/>";
      print_r($id);
      
      print_r($mq);
      
      print_r($qr);
      
      print_r($tipo);
      

      我得到以下答案

          Array
      (
          [0] => 87
          [1] => 88
          [2] => 209
          [3] => 89
          [4] => 41
          [5] => 5
          [6] => 3
          [7] => 20
          [8] => 13
          [9] => 148
          [10] => 36
          [11] => 29
      )
      Array
      (
          [0] => 
          [1] => 
          [2] => 
          [3] => 
          [4] => 
          [5] => 
          [6] => 
          [7] => 
          [8] => 
          [9] => 
          [10] => 
          [11] => 
      )
      Array
      (
          [0] => 1
          [1] => 4
          [2] => 
          [3] => 
          [4] => 1
          [5] => 
          [6] => 1
          [7] => 
          [8] => 3
          [9] => 
          [10] => 
          [11] => 
      )
      Array
      (
          [0] => nuovo
          [1] => 
          [2] => 
          [3] => 
          [4] => 
          [5] => 
          [6] => 116
          [7] => 
          [8] => 
          [9] => 
          [10] => 91
          [11] => 68
      )
      

      【讨论】:

        猜你喜欢
        • 2014-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多