duan0708676887 2013-07-26 19:25
浏览 23
已采纳

纠正和修复爆炸并排序以在PHP中显示结果

I just create a color extractor for my gallery. for every image i have a row in database for colors, this is a part of one of those row in database.

Example of row:

CCCCCC,CCCCFF,99CCCC,333333,9999CC,999999,CCFFFF,000000,000033,669999,666699,333366,003333,336666,666666,FFFFFF,FF9900,333300...

i didn't add all colors in here because is too long.

Now, in photo page i need to show those colors, but not all of them. for example just 20 color. so i wrote this code:

$all_colors = $db->super_query("SELECT color 
FROM colors 
WHERE photo_id='{$photoid}'
");

$list = explode(',',$all_colors['color'], 20);//Select 20 colors
sort($list); //And sorting colors

foreach ($list as $item){
echo $item."<br>";
}

Now the problem is, this is the result from that code:

000000
000033
003333
330000
333300
333333
333366
336666
663300
666633
666666
666699
669999
996633,FFFFCC,CC9966,CCCC99,663333,FF9933,FFCC66,CC9933,CC6600,666600,996600,003300,999966,FFCC33,CCFFCC,996666,999933,FFCC00,CC9999,FFFF99,FF9999
999999
9999CC
99CCCC
CCCCCC
CCCCFF
CCFFFF

You can see a line with too many colors!

Result must be like this:

000000
000033
003333
330000
333300
333333
333366
336666
663300
666633
666666
666699
669999
996633
999999
9999CC
99CCCC
CCCCCC
CCCCFF
CCFFFF

How i can fix this code?

  • 写回答

3条回答 默认 最新

  • dongpiao1983 2013-07-26 19:34
    关注

    Option #1

    $all_colors = $db->super_query("SELECT color 
    FROM colors 
    WHERE photo_id='{$photoid}'
    ORDER BY color
    LIMIT 20");
    
    $list = explode(',',$all_colors['color']);
    
    foreach ($list as $item){
        echo $item."<br>";
    }
    

    Option #2

    $all_colors = $db->super_query("SELECT color 
    FROM colors 
    WHERE photo_id='{$photoid}'");
    
    $list = array_slice(explode(',',$all_colors['color']), 0, 20);//Select 20 colors
    sort($list); //And sorting colors
    
    foreach ($list as $item){
        echo $item."<br>";
    }
    

    Option #3

    $all_colors = $db->super_query("SELECT color 
    FROM colors 
    WHERE photo_id='{$photoid}'");
    
    $list = explode(',',$all_colors['color'], 21);//Select 20 colors
    if (count($list) == 21)
        array_pop($list);
    sort($list); //And sorting colors
    
    foreach ($list as $item){
        echo $item."<br>";
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c