输出具有相同值的数组

Posted

技术标签:

【中文标题】输出具有相同值的数组【英文标题】:output an Array with same values 【发布时间】:2020-02-12 16:03:49 【问题描述】:

我有一个 SQL 查询结果(数组):“title”、“content”和“name” 这是我的 var_dump:

array(28) 
  [0]=>
  array(3) 
    ["title"]=>
    string(10) "Basis Task"
    ["content"]=>
    string(43) "https://www.wrike.com/open.htm?id=440908999"
    ["name"]=>
    string(14) "Christian Wahl"
  
  [1]=>
  array(3) 
    ["title"]=>
    string(10) "Basis Task"
    ["content"]=>
    string(5) "mysql"
    ["name"]=>
    string(14) "Christian Wahl"
  
  [2]=>
  array(3) 
    ["title"]=>
    string(4) "Test"
    ["content"]=>
    string(3) "php"
    ["name"]=>
    string(14) "Christian Wahl"
  
  [3]=>
  array(3) 
    ["title"]=>
    string(4) "Test"
    ["content"]=>
    string(3) "PHP"
    ["name"]=>
    string(14) "Christian Wahl"
  
  [4]=>
  array(3) 
    ["title"]=>
    string(10) "Basis Task"
    ["content"]=>
    string(7) "content"
    ["name"]=>
    string(9) "Elena Ott"
  

(为了看得更清楚,我把数组的末端剪掉了) 这些是分配给用户的任务。

现在我想输出“名称”(面板标题) 以及“标题”和“内容”(面板主体)。

它应该看起来像这样,但对于每个给定的名称:

how it should look like

我试图自己找到解决方案,但没有成功:( 我希望你能帮助我吗?

非常感谢

-Taddl

【问题讨论】:

【参考方案1】:

只需循环你的数据并渲染它

$data = [];
foreach ($databaseResult as $row) 
  $data[$row['name']][] = $row;

foreach($data as $name => $stuff) 
  echo $name . '<br>';
  foreach($stuff as $row) 
    echo $row["title"] . ':' . $row["content"] . '<BR>';
  

【讨论】:

【参考方案2】:

您可以使用 foreach 循环。例如:

foreach($yourarrayvariable as $data)

    echo "<tr>";
    echo "<td class='heading'>".$data['name']."</td>";
    echo "<div class='content'>";
    echo "<td>".$data['title']."</td>";
    echo "<td>".$data['content']."</td>";
    echo "</div>";
    echo "</tr>";

并根据您的需要在 foreach 中创建所需的模板外观类。

【讨论】:

可能想用一堂课来修复那些回声。此代码将中断 对不起,这是一个错误。修复。已编辑,谢谢指正。 :)

以上是关于输出具有相同值的数组的主要内容,如果未能解决你的问题,请参考以下文章

如何有效地输出具有相同内容的文件列表?

从排序数组中删除重复项,不同代码方式的相同解决方案具有不同的输出

从单个表中检索具有不同值的同一列的多个输出时的性能问题

为啥浮点字典键可以覆盖具有相同值的整数键?

Python:总结具有不同键和相同值的字典列表

将值放入具有相同值的数组中