首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在循环中进行分组(如果特定字段是相同的文本)?

问如何在循环中进行分组(如果特定字段是相同的文本)?
EN

Stack Overflow用户
提问于 2015-03-07 12:56:48
回答 1查看 111关注 0票数 2

我尝试在循环中呈现数据,如果extend_tag字段在一个容器中有相同的文本组。

我只知道像下面这样的硬代码,循环数据基于多少个已知的extend_tag组,但实际上extend_tag数字是未知的,可能是tag_和任何数字,你知道怎么解决它吗?

数据

代码语言:javascript
复制
[tag] => Array (
  [0] => Array ( 
    [id] => 1 
    [extend_tag] => tag_0 
  ) 
  [1] => Array ( 
    [id] => 2 
    [extend_tag] => tag_11 
  ) 
  [2] => Array ( 
    [id] => 3 
    [extend_tag] => tag_4 
  ) 
)


  <ul class="container">
  <?php foreach($rows['tag'] as $eachRowsTag) { ?>
    <?php if ($eachRowsTag['extend_tag'] == 'tag_0') { ?>
    <li>><?php echo $eachRowsTag['id']; ?></li>
    <?php } ?>
  <?php } ?>
  </ul>

  <ul class="container">
  <?php foreach($rows['tag'] as $eachRowsTag) { ?>
    <?php if ($eachRowsTag['extend_tag'] == 'tag_1') { ?>
    <li>><?php echo $eachRowsTag['id']; ?></li>
    <?php } ?>
  <?php } ?>
  </ul>

  ...
EN

回答 1

Stack Overflow用户

发布于 2015-03-11 05:58:11

为什么不先对它们进行分组,然后遍历结果数组。类似于下面的内容。

代码语言:javascript
复制
foreach ($tags as $tag) {
  $grouped[$tag['extend_tag']][] = $tag;
}
// Now $grouped is something along the lines of:
// [
//   'tag_0' => [
//     [ 'id' => 1, 'extend_tag' => 'tag_0'],
//     ..
//   ],
//   ..
// ]

foreach($grouped as $extend_tag => $tags) {
  echo "All tags in $extended_tag.";
  foreach($tags as $tag) {
    echo $tag['id'];
  }
}

// For something like:
// All tags in tag_0.
// 1
// 4
// All tags in tag_1.
// ..
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28911553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档