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

时间:2016-01-31 03:33:28

标签: 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
10000

但我真正想要展示的是:

5000 2.00
10000 1.00

如何将第二个列表合并到第一个列表中?第2列表的第1个值属于第1个列表的第1个值。第二列表的第二个值属于第一个列表的第二个值。等等。

我不认为它是第一次爆炸后的第二次爆炸和第二次预演(然后做了某种奇怪的合并?)。我是否会在第一个foreach中进行第二次爆炸和预测?

5 个答案:

答案 0 :(得分:1)

做类似的事情:

$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中分隔值的数量与$cost相同,并且$quantity_explode[index]的数据与$cost_explode[index]相关联。

答案 1 :(得分:1)

简单,制作第三个数组并将每个字段作为子字段放入该数组中。然后在新阵列上做一个foreach。像这样

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

如果这是一个课程项目 - 你真的应该自己解决。 : - )

答案 2 :(得分:1)

怎么样

$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
}

答案 3 :(得分:0)

<?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
}

答案 4 :(得分:0)

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

$qty = explode(',',  $quantity);
$c = explode(',',  $cost);
for($i=0; $i < count($qty); $i) {
  echo "$qty[$i] $c[$i]". PHP_EOF;
}