2016-05-22 27 views
2

不知道我会如何做到这一点,但如果有人可以指向我将是伟大的正确轨道,基本上我有一个单行的文本在一个变量的外观像这样:PHP - 将字符串分成两个变量

Lambo 1; Trabant 2; Car 3; 

然后我想将“Lambo”分解为自己的变量,然后将“1”分配给自己的变量,然后重复其他变量。我将如何去做这件事? 我知道爆炸(),但不知道我会怎么做分裂变量了两声等

正如评论我所需的输出会是这样要求的: $项目=“兰博” $数量= 1 然后将它们回显出来并返回到循环顶部,例如对Trabant和Car进行相同操作

+0

你有没有考虑过使用PHP的[explode()](http://php.net/manual/en/function.explode.php)函数?或[preg_split()](http://php.net/manual/en/function.preg-split.php)? –

+0

@MarkBaker嘿,我已经看过它,但我不知道我会如何将它拆分如上,我想例如“Lambo”在一个变量中,例如$ Item然后它后面的数字$ Quantity,然后我会回显出来,并重复其他两个等 – PaulB3434

+0

添加一个你想要的输出的例子.. – dbf

回答

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

您可以使用爆炸分割每个;上的输入,循环播放结果,然后分割o版本每个

+0

阵列分裂嗨,任何机会你可以告诉我如何把MySQL Query变成像$ in这样的格式? $结果= mysqli_query($康恩,$ sql_query); – PaulB3434

+0

@Paul请将您的问题作为新问题发布,而不是作为对现有问题的评论。 –

0

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

$output = preg_split("/ (;|vs) /", $input); 
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") 
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>";} 
    } 
0

这将每个单词和数字放在数组的新密钥中,如果您需要单独使用它们。 preg_match_all(“/(\ w +)(\ d +); /”,$ input_lines,$ output_array);}}

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

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保持完全令牌你正在寻找。

相关问题