PHP foreach循环显示每个列表项,而只显示一次列表名称 [英] PHP foreach loop show each list item while only showing list name once

查看:198
本文介绍了PHP foreach循环显示每个列表项,而只显示一次列表名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请比较下面的CURRENTDESIRED结果,以查看我要执行的操作.

Please compare the CURRENT and DESIRED results below to see what I'm trying to do.

$arr=array(
array('list_name'=>'Food', 'list_item'=>'bread'),
array('list_name'=>'Food', 'list_item'=>'meat'),
array('list_name'=>'Drinks', 'list_item'=>'water'),
array('list_name'=>'Drinks', 'list_item'=>'milk')
);

foreach($arr as $row){   
  echo $row['list_name'].'<br>'; 
  echo $row['list_item'].'<br>';
  echo '<br>___<br>';
}

当前结果

Food
bread

___
Food
meat

___
Drinks
water

___
Drinks
milk

___

期望结果

Food
1.bread
2.meat
___

Drinks
1.water
2.milk
___

更新

更复杂但更通用的示例:

More complex, yet more generalizable example:

$arr=array(
array('list_name'=>'Food', 'list_item1'=>'bread', 'list_item2' => 2001),
array('list_name'=>'Food', 'list_item1'=>'meat', 'list_item2' => 2002),
array('list_name'=>'Drinks', 'list_item1'=>'water', 'list_item2' => 2003),
array('list_name'=>'Drinks', 'list_item1'=>'milk', 'list_item2' => 2004)
);

期望结果

Food
1.bread, 2001
2.meat, 2002
___

Drinks
1.water, 2003
2.milk, 2004
___

推荐答案

您可以遍历数组并将项目数据添加到新数组(每个list_name一个).

You could iterate over the array and add the item data to a new array (one for each list_name).

例如:

$new_array = array();

foreach ($arr as $row)
{
  $new_array[$row['list_name']][] = $row['list_item'];
}

foreach ($new_array as $name => $items)
{

  echo $name . '<br>'; 

  foreach ($items as $index => $item)
  {
    echo ($index + 1) . '. ' . $item . '<br>';
  }

  echo '___<br>';

}

您的更新是

$new_array = array();

foreach ($arr as $row)
{

  $name = $row['list_name'];

  unset($row['list_name']);

  $new_array[$name][] = $row;

}

foreach ($new_array as $name => $items)
{

  echo $name . '<br>'; 

  foreach ($items as $index => $item)
  {
    echo ($index + 1) . '. ' . implode(', ', $item) . '<br>';
  }

  echo '___<br>';

}

这篇关于PHP foreach循环显示每个列表项,而只显示一次列表名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆