我有这个类似的数组:
$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];
}
但这没有任何作用。困惑!
更新需要说谢谢你们,我为自己缺乏知识而道歉。我之前从未使用过嵌套数组,在我发布此处之前,我确实在寻找解决方案。
答案 0 :(得分:5)
<?php
foreach($suppliers as $supplier => $category) {
echo $supplier . '<br />';
foreach($category as $cat_name => $values_arr) {
echo $cat_name . ': ' . implode('-', $values_arr) . '<br /><br />';
}
}
?>
答案 1 :(得分:1)
你可以尝试:
foreach($suppliers as $name => $value) {
echo $name . "<br />";
foreach($value as $a => $price) {
echo $a .': '. $price[0].'-'.$price[1];
}
echo "<br /><br />";
}
答案 2 :(得分:1)
实现你想要的代码将遵循,但我建议你更多地了解你的PHP技能,因为这是一项微不足道的任务。
foreach($suppliers as $name => $data){
echo $name . '<br/>';
foreach($data as $utility => $value){
echo $utility . ': ' . $value[0] . '-' . $value[1] . ' ';
}
echo '<br/><br/>';
}
答案 3 :(得分:1)
与其他人一样的答案(我太慢了)。这是一个有效的例子:http://codepad.org/PDPEjAGJ
此外,回答这个问题的每个人,包括我在内,都犯了舀勺罪。啊,好吧,我会为积分做点什么! :P
答案 4 :(得分:0)
这是一个可以使用的简单递归函数。我找到了它并对其进行了修改,以用于演示目的。原始来源在评论中。
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