一个php数组循环嵌套的问题

2016-07-07 15:06 来源:www.chinab4c.com 作者:ecshop专家

请教一个php数组循环嵌套的问题

我的代码:

  1. function get_goods_attr_info($arr, $spec_num)
  2. {
  3. $attr= '';
  4. if (!empty($arr))
  5. {
  6. $fmt = "%s:%s[%s] \n";
  7. $sql = "SELECT a.attr_name, ga.attr_value, ga.attr_price ".
  8. "FROM ".$GLOBALS['ecs']->table('goods_attr')." AS ga, ".
  9. $GLOBALS['ecs']->table('attribute')." AS a ".
  10. "WHERE " .db_create_in($arr, 'ga.goods_attr_id')." AND a.attr_id = ga.attr_id";
  11. $res = $GLOBALS['db']->query($sql);
  12. while ($row = $GLOBALS['db']->fetchRow($res))
  13. {
  14. $attr_price = round(floatval($row['attr_price']), 2);
  15. foreach ($spec_num as $s_n)
  16. {
  17. $attr .= sprintf($fmt, $row['attr_name'], $row['attr_value'].'×'.$s_n, $attr_price);
  18. }
  19. }

  20. $attr = str_replace('[0]', '', $attr);
  21. }
  22. return $attr;
  23. }
复制代码


我要得到的效果:
尺码:XL×1
尺码:2XL×2
尺码:3XL×3
尺码:4XL×4


实现运行效果:
尺码:XL×1
尺码:XL×2
尺码:XL×3
尺码:XL×4
尺码:2XL×1
尺码:2XL×2
尺码:2XL×3
尺码:2XL×4
尺码:3XL×1
尺码:3XL×2
尺码:3XL×3
尺码:3XL×4
尺码:4XL×1
尺码:4XL×2
尺码:4XL×3
尺码:4XL×4


出现了重复循环,请问怎么解决啊。谢谢了

回答:
感谢回答 不过还是不明白,能不能说详细点,最好贴上代码.

怎么都没有人帮忙啊

SELECT a.attr_name
换成
SELECT distinct(a.attr_name)
试一下。