Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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 如何将多个逗号分隔的列表分解为单个foreach?_Php_Arrays_List_Foreach - Fatal编程技术网

Php 如何将多个逗号分隔的列表分解为单个foreach?

Php 如何将多个逗号分隔的列表分解为单个foreach?,php,arrays,list,foreach,Php,Arrays,List,Foreach,假设我有两个逗号分隔的列表: $quantity = "5000,10000"; $cost = "2.00,1.00"; 然后我分解数量,以如下方式呼出每个列表项: $quantity_explode = explode(",", $quantity); foreach($quantity_explode as $quantity_value){ echo $quantity_value . PHP_EOL; //PHP_EOL is same as \n } 其结果是: 5000

假设我有两个逗号分隔的列表:

$quantity = "5000,10000";
$cost = "2.00,1.00";
然后我分解数量,以如下方式呼出每个列表项:

$quantity_explode = explode(",", $quantity);
foreach($quantity_explode as $quantity_value){
    echo $quantity_value . PHP_EOL; //PHP_EOL is same as \n
}
其结果是:

5000
10000
但我真正想展示的是:

5000 2.00
10000 1.00
如何将第二个列表合并到第一个列表中?第二个列表的第一个值属于第一个列表的第一个值。第二个列表的第二个值属于第一个列表的第二个值。等等

我不认为这是第二次爆炸和第一次爆炸和第二次爆炸(然后进行某种奇怪的合并?)。我是否在第一个foreach中执行第二次爆炸和foreach?

执行类似以下操作:

$quantity_explode = explode(",", $quantity);
$cost_explode = explode(",", $cost);
for ($i = 0; $i < count($quantity_explode); $i++) {
    echo $quantity_explode[$i] . " " . $cost_explode[$i] . PHP_EOL;
}
$quantity\u explode=explode(“,”,$quantity);
$cost_explode=explode(“,”,$cost);
对于($i=0;$i

假设您可以确保
$quantity
中的分隔值的数量与
$cost
相同,并且
$quantity\u explode[index]
的数据与
$cost\u explode[index]

相关联,则创建第三个数组,并将每个字段作为子字段放入该数组中。然后在新数组上执行foreach。像这样

<?php
$quantity = "5000,10000";
$cost = "2.00,1.00";
$quantity_explode = explode(",", $quantity);
$cost_explode = explode(",", $cost);
for($i=0;$i<count($quantity_explode);$i++){
    echo $quantity_value[$i] . "-" . $cost_explode[$i] . PHP_EOL; //PHP_EOL is same as \n
}
$a = [];
for( $i=0; $i<count($quantity); $i++ ){
$a[$i]['quantity'] = $quantity[$i];
$a[$i]['cost'] = $cost[$i];
}
foreach( $a as $k=>$v ){
echo $v['quantity'] . " = " . $v['cost'] . "\n";
}
$a=[];
对于($i=0;$i$v){
echo$v[“数量”]。“=”$v[“成本”]。“\n”;
}
如果这是一个课程项目-你真的应该自己解决它。:-)

怎么样

$quantity_explode = explode(",", $quantity);
$cost_explode = explode(",", $cost);
    for($i=0; $i<count($quantity_explode); $i++)
     {
echo $quantity_explode[$i]. ' ' . $cost_explode[$i] . PHP_EOL; //PHP_EOL is same as \n
}
$quantity\u explode=explode(“,”,$quantity);
$cost_explode=explode(“,”,$cost);

对于($i=0;$iYes),您可以使用嵌套在第一个循环中的另一个
foreach()
。或者,如果它们是按顺序排列的。尝试在
for()
循环中使用:

$qty = explode(',',  $quantity);
$c = explode(',',  $cost);
for($i=0; $i < count($qty); $i) {
  echo "$qty[$i] $c[$i]". PHP_EOF;
}
$quantity=分解(',',$quantity);
$c=爆炸(“,”,$cost);
对于($i=0;$i<计数($qty);$i){
回显“$qty[$i]$c[$i]”。PHP_EOF;
}

由于
$quantity=“500010000”
count($quantity)
将返回1。您需要首先分解它。是的,这是真的-但我想他们理解。:-)一些类似的答案,但我阅读并复制了您的第一个答案,结果成功了。谢谢