如何通过表行而不是php中的列来回显多维数组值[关闭]
Posted
技术标签:
【中文标题】如何通过表行而不是php中的列来回显多维数组值[关闭]【英文标题】:How do I echo multidimensional array values by table rows instead of columns in php [closed] 【发布时间】:2020-08-24 15:35:36 【问题描述】:我正在尝试使用 php 将数据库中的多维数组显示到 html 表中,逐行而不是逐列显示。 我有以下数组;
Array (
[0] => Array (
[0] => Paracetamol
[1] => Caffeine
[2] => Pase
)
[1] => Array (
[0] => 12
[1] => 10
[2] => 1
)
[2] => Array (
[0] => Packets
[1] => Cartons
[2] => Containers
)
)
我尝试使用 foreach,这是我得到的输出;https://jsfiddle.net/fraqy912/1/ 但是,这是我真正想要实现的输出;https://jsfiddle.net/5akgjtvf/3/
【问题讨论】:
请分享您当前的代码,以便我们帮助调试。 你好@Nick,我使用了下面由 Anik-anwar 提供的答案,它奏效了。 【参考方案1】:<?php
$array = Array (
Array (
'Paracetamol',
'Caffeine',
'Pase'
),
Array (
12,
10,
1
),
Array (
'Packets',
'Cartons',
'Containers'
)
);
function combine($array)
array_unshift($array, null);
return call_user_func_array('array_map', $array);
$array = combine($array);
?>
<table border="1">
<tr>
<th>Product_name</th>
<th>Product_quantity</th>
<th>Product_size</th>
</tr>
<?php foreach($array as $row): ?>
<tr>
<td><?=$row[0]?></td>
<td><?=$row[2]?></td>
<td><?=$row[1]?></td>
</tr>
<?php endforeach ?>
</table>
【讨论】:
非常感谢。当我使用组合功能时,它就像一个魅力......我非常感谢......【参考方案2】:尝试转置数组
function transpose($array)
array_unshift($array, null);
return call_user_func_array('array_map', $array);
或者
function transpose($array)
return array_map(null, ...$array);
【讨论】:
感谢您的回答。起初我无法得到它,但经过一些调整后,它起作用了。谢谢!!【参考方案3】:其实有很多种方法,我就给其中一种
<?php
$myArray = Array (
Array (
'Paracetamol',
'Caffeine',
'Pase'
),
Array (
12,
10,
1
),
Array (
'Packets',
'Cartons',
'Containers'
)
);
$tableData = '';
foreach ($myArray as $datas)
$tableData .= '<tr>';
foreach ($datas as $data)
$tableData .= '<td>';
$tableData .= $data;
$tableData .= '</td>';
$tableData .= '</tr>';
?>
<table border="1">
<?php
echo $tableData;
?>
</table>
【讨论】:
您好,非常感谢您的回答。我试过了,但不幸的是,它仍然显示相同。【参考方案4】:这里有一些东西会给你完成任务的想法。
<?php
$meds = Array (
[0] => Array (
[0] => Paracetamol
[1] => Caffeine
[2] => Pase
)
[1] => Array (
[0] => 12
[1] => 10
[2] => 1
)
[2] => Array (
[0] => Packets
[1] => Cartons
[2] => Containers
)
);
echo "<table>";
foreach($meds as $itemz)
echo "<tr>";
foreach ($itemz as $item)
echo "<td>".$item."</td>";
echo "</tr>";
echo "<br >";
echo "</table>";
?>
【讨论】:
您好,非常感谢您的回答。我试过了,但不幸的是,它仍然显示相同。以上是关于如何通过表行而不是php中的列来回显多维数组值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章