在PHP中循环遍历数组中的数组并输出值

3

我有一个数组...

array (size=2)
  'prd' => 
    array (size=8)
      0 => string '1' (length=1)
      1 => string '2' (length=1)
      2 => string '3' (length=1)
      3 => string '4' (length=1)
      4 => string '5' (length=1)
      5 => string '6' (length=1)
      6 => string '7' (length=1)
      7 => string '8' (length=1)
  'price' => 
    array (size=8)
      0 => string 'a' (length=1)
      1 => string 'b' (length=1)
      2 => string 'c' (length=1)
      3 => string 'd' (length=1)
      4 => string 'e' (length=1)
      5 => string 'f' (length=1)
      6 => string 'g' (length=1)
      7 => string 'h' (length=1)

我希望输出看起来像这样...
1 费用为a,2 费用为b,3 费用为c,4 费用为d,5 费用为e,6 费用为f,7 费用为g,8 费用为h
到目前为止我尝试了以下方法...
foreach ($array as $values) {

    foreach ($values as $val ) {
        echo $val;
    }

}

这使我按顺序获取数组...

12345678abcdefgh

如何让它输出

1a2b3c4d5e6f7g8h

我可以处理格式,只是在顺序上有些困惑。


它是一个单一的数组还是两个不同的数组?如果是单一的数组,那么它总是只有两个索引,你想要将它们合并成键值组合吗? - Alive to die - Anant
数组('prd' =>array(), 'price' =>array()) - Alex49
2个回答

4

有几种方法,这里介绍两种。

使用循环数组的键来访问其他元素:

foreach($array['prd'] as $key => $val) {
    echo $val . $array['price'][$key];
}

将键和值组合:

$array = array_combine($array['prd'], $array['price']);

foreach($array as $key => $val) {
    echo $key . $val;
}

array_combine是这里的方法,+1 - Pedro Lobito

3

试试这个

$data = array (
  'prd' => array (
      0 => '1', 
      1 => '2', 
      2 => '3', 
      3 => '4', 
      4 => '5', 
      5 => '6', 
      6 => '7', 
      7 => '8', 
   ),
  'price' =>  array (
      0 => 'a', 
      1 => 'b', 
      2 => 'c', 
      3 => 'd', 
      4 => 'e', 
      5 => 'f', 
      6 => 'g', 
      7 => 'h', 
   )
);

for ($x = 0; $x< count($data['prd']); $x++) {
  echo $data['prd'][$x] . " costs " . $data['price'][$x] . PHP_EOL;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接