PHP - 将字符串分成两个变量

时间:2016-05-22 18:02:38

标签: php

我不确定如何做到这一点,但是如果有人能指出我在正确的轨道上会很棒,那么基本上我在一个看起来像这样的变量中只有一行文字:

Lambo 1; Trabant 2; Car 3;

然后我想分开"兰博"然后它自己的变量" 1"它自己的变量,并重复其他变量。我该怎么做呢? 我知道explode()但不知道如何将变量分割两次等等。

根据评论的要求,我想要的输出是这样的: $ Item =" Lambo" $ Quantity = 1 然后回显它们并返回到循环顶部,例如为Trabant和Car做同样的事情

6 个答案:

答案 0 :(得分:2)

<?php
$in = "Lambo 1; Trabant 2; Car 3;";
foreach (explode(";", $in) as $element) {
        $element = trim($element);
        if (strpos($element, " ") !== false ) {
                list($car, $number) = explode(" ", $element);
                echo "car: $car, number: $number";
        }
}

您可以使用explode在每个;上拆分输入,循环显示结果,然后拆分每个

答案 1 :(得分:0)

您可以使用preg_split并通过移动两次遍历数组。

$output = preg_split("/ (;|vs) /", $input);

答案 2 :(得分:0)

您可以使用preg_match_all获取这些部分:

$line = "Lambo 1; Trabant 2; Car 3;";   

preg_match_all("/[^ ;]+/", $line, $matches);
$matches = $matches[0];

使用该示例数据,$matches数组将如下所示:

Array ( "Lambo", "1", "Trabant", "2", "Car", "3" ) 

答案 3 :(得分:0)

   $new_data="Lambo 1;Trabant 2;Car 3;"  ;  
   $new_array=explode(";", $new_data);
      foreach ($new_array as $key ) {
          # code...
            $final_data=explode(" ", $key);

           if(isset($final_data[0])){ echo "<pre>".$final_data[0]."</pre>";}
           if(isset($final_data[1])){echo "<pre>".$final_data[1]."</pre>";}
    }

答案 4 :(得分:0)

如果你需要单独使用它们,这会将每个单词和数字放在数组的新键中。

preg_match_all(“/(\ w +)(\ d +); /”,$ input_lines,$ output_array);

单击preg_match_all http://www.phpliveregex.com/p/fM8

答案 5 :(得分:0)

使用全局正则表达式匹配:

<?php
$subject = 'Lambo 1; Trabant 2; Car 3;';
$pattern = '/((\w+)\s+(\d+);\s?)+/Uu';
preg_match_all($pattern, $subject, $tokens);
var_dump($tokens);

你得到的输出是:

array(4) {
  [0] =>
  array(3) {
    [0] =>
    string(8) "Lambo 1;"
    [1] =>
    string(10) "Trabant 2;"
    [2] =>
    string(6) "Car 3;"
  }
  [1] =>
  array(3) {
    [0] =>
    string(8) "Lambo 1;"
    [1] =>
    string(10) "Trabant 2;"
    [2] =>
    string(6) "Car 3;"
  }
  [2] =>
  array(3) {
    [0] =>
    string(5) "Lambo"
    [1] =>
    string(7) "Trabant"
    [2] =>
    string(3) "Car"
  }
  [3] =>
  array(3) {
    [0] =>
    string(1) "1"
    [1] =>
    string(1) "2"
    [2] =>
    string(1) "3"
  }
}

在那里元素2和3完全保存您正在寻找的标记。