PHP显示多维数组

bnlyeluc  于 2023-01-04  发布在  PHP
关注(0)|答案(5)|浏览(167)

我有这样一个数组:

$suppliers = array(
  'Utility Warehouse' => array('Gas' => array(0,0), 'Electricty' => array(0,0)),
  'British Gas' => array('Gas' => array(93,124), 'Electricty' => array(93,124)),
  'Eon' => array('Gas' => array(93,124), 'Electricty' => array(93,124))
);

如何显示如下信息

Utility Warehouse
Gas: 0-0 Electricity 0-0

British Gas
Gas: 93-134 Electricity: 93-134

Eon
Gas: 93-124 Electricity: 93-134

您可以看到显示的数据与数组中的数据是如何对应的。

foreach($suppliers as $a){
    echo $a[0];
}

但是这个什么也做不了,困惑!

w7t8yxp5

w7t8yxp51#

<?php 

foreach($suppliers as $supplier => $category) {
    echo $supplier . '<br />';
    foreach($category as $cat_name => $values_arr) {
        echo $cat_name . ': ' . implode('-', $values_arr) . '<br /><br />';
    }
}

?>
csbfibhn

csbfibhn2#

您可以尝试:

foreach($suppliers as $name => $value) {
    echo $name . "<br />";
    foreach($value as $a => $price) {
        echo $a .': '. $price[0].'-'.$price[1];
    }
    echo "<br /><br />";
}
cwtwac6a

cwtwac6a3#

实现所需功能的代码如下所示,但我建议您进一步提高PHP技能,因为这是一项微不足道的任务。

foreach($suppliers as $name => $data){
    echo $name . '<br/>';
    foreach($data as $utility => $value){
        echo $utility . ': ' . $value[0] . '-' . $value[1] . ' ';
    }
    echo '<br/><br/>';
}
bakd9h0s

bakd9h0s4#

答案和其他人一样(我太慢了)。下面是一个例子:http://codepad.org/PDPEjAGJ
而且,每个回答这个问题的人,包括我,都犯了填鸭式的错误。啊,好吧,我会为积分做的事情!:p

xzv2uavs

xzv2uavs5#

这是一个简单的递归函数。我找到了它,并为了演示的目的进行了修改。原始源代码在注解中。

function print_a($array, $level=0){
  # source: https://thisinterestsme.com/php-using-recursion-print-values-multidimensional-array/
  foreach($array as $key => $value){
    # If $value is an array.
    if(is_array($value)){
      echo str_repeat("-", $level). "<br>{$key}<br>\r\n";
      # We need to loop through it.
      print_a($value, $level + 1);
    } else{
      # It is not an array, so print it out.
      echo str_repeat("-", $level) . "{$key}: {$value}<br>\r\n";
    }
  }
} # END FUNCTION print_a

相关问题