Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-将字符串行拆分为两个变量_Php - Fatal编程技术网

PHP-将字符串行拆分为两个变量

PHP-将字符串行拆分为两个变量,php,Php,我不知道该怎么做,但如果有人能给我指出正确的方向那就太好了,基本上我在一个变量中有一行单独的文本,如下所示: Lambo 1; Trabant 2; Car 3; Array ( "Lambo", "1", "Trabant", "2", "Car", "3" ) 然后我想将“Lambo”拆分为它自己的变量,然后将“1”拆分为它自己的变量,并对其他变量重复。我该怎么做呢? 我知道explode(),但不确定如何将变量拆分两次等 根据评论中的要求,我期望的输出如下: $Item=“Lambo

我不知道该怎么做,但如果有人能给我指出正确的方向那就太好了,基本上我在一个变量中有一行单独的文本,如下所示:

Lambo 1; Trabant 2; Car 3;
Array ( "Lambo", "1", "Trabant", "2", "Car", "3" ) 
然后我想将“Lambo”拆分为它自己的变量,然后将“1”拆分为它自己的变量,并对其他变量重复。我该怎么做呢? 我知道explode(),但不确定如何将变量拆分两次等

根据评论中的要求,我期望的输出如下: $Item=“Lambo” $Quantity=1
然后将它们回显并返回到循环的顶部,例如,对Trabant和Car执行相同的操作

您可以使用preg_split并通过移动两次来迭代数组

$output = preg_split("/ (;|vs) /", $input);
您可以使用以下方法获取这些零件:

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

preg_match_all("/[^ ;]+/", $line, $matches);
$matches = $matches[0];
使用该示例数据,
$matches
数组将如下所示:

Lambo 1; Trabant 2; Car 3;
Array ( "Lambo", "1", "Trabant", "2", "Car", "3" ) 
$new_data=“Lambo 1;Trabant 2;Car 3;”;
$new_数组=分解(“;”,$new_数据);
foreach($key作为$key的新数组){
#代码。。。
$final_data=explode(“,$key);
if(isset($final_data[0]){echo.“$final_data[0]。;}
if(isset($final_data[1]){echo.“$final_data[1]”。;}
}

如果需要单独访问,则将每个单词和数字放入数组的新键中

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

单击“预匹配所有”
使用全局正则表达式匹配:


其中元素2和3正好包含您要查找的标记

你考虑过使用PHP的函数吗?或者?@MarkBaker嘿,我已经看过了,但我不确定如何像上面那样将其拆分,我想在一个变量中添加“Lambo”,例如$Item,然后是它后面的数字$Quantity,然后我将回显它们,并重复其他两个,等等。添加一个所需输出的示例..在
上分解一次数组拆分
,然后在Space嘿,你能告诉我如何将MySQL查询转换为$in这样的格式吗$结果=mysqli\u查询($conn,$sql\u查询)@Paul请将您的问题作为新问题发布,而不是作为对现有问题的评论。
<?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"
  }
}