将多维数组中的值打印到表中,不重复

时间:2015-02-17 12:32:47

标签: php

我有这个数组,如下所示。我想在表格中输出数据,我输出每个项目下的所有小时数。因此对于每个项目它应该创建一个新的“< * tr>”,但也如果有一个Activity => “生病”。

我需要获取唯一数据而不需要重复数据。似乎无法以正确的方式设置我的循环,以便它可以创建我的表。

我可以像这样做一个标准的foreach:

 foreach ($array as $key => $value)

 <tr>
  <td><?php echo $value['Aktivity'];?></td>
  <td><?php echo $value['Project']; ?></td>
  <td><?php echo $value['Hours'] ?></td>
 </tr>

这给了我:

Work | Project 1 | 8
Work | Project 2 | 8
Work | Project 1 | 5
Sick |           | 8

我希望它如下所示,没有重复,但我不知道从哪里开始。我试图用array_column来填充我的数组,然后做一个array_unique来获得每个Project中只有一个有效。但后来我只得到了我需要的一个值。如果可能的话,我想将它保存在原始数组中并循环遍历它。

Work | Project 1 | 8
Work | Project 2 | 13
Sick |           | 8



 array(4) {
 [0]=>
   array(3) {
    ["Activity"] => "Work"
    ["Project"] => "Projekt 1"
    ["Hours"] => "8"

 [1]=>
   array(3) {
    ["Activity"] => "Work"
    ["Project"] => "Projekt 2"
    ["Hours"] => "8"

 [2]=>
   array(3) {
    ["Activity"] => "Work"
    ["Project"] => "Projekt 1"
        ["Hours"] => "5"
 [3]=>
   array(3) {
    ["Activity"] => "Sick"
    ["Project"] => ""
    ["Hours"] => "8"

1 个答案:

答案 0 :(得分:0)

我有一个非常类似的问题。

要做的第一件事是计算行数,所以在你的情况下是4.现在你知道你需要多少次运行循环。

$result = count($yourarray);

for($i = 0; $i < $result; i++)

在循环中添加类似的内容,以打印项目名称(在echo中,您还可以添加<tr><td>等表格部分。

if($i == 0){echo yourarray[$i]['Projekt']}

然后你想做同样的活动

 if($i == 0){echo yourarray[$i]['Activity']}

和小时

if($i == 0){echo yourarray[$i]['Hours']}