如何在php中以任何方式安排以下列表,

实际上,我们将从MySQL数据库(选择输出)获取项目数组列表。

例如,

如果我们将得到如下的数组列表

$item_arr = array("102","101","103","103","101","101","102","103","102");


我们必须像下面这样安排

101 102 103 101 102 103 101 102 103


同样,如果数组列表如下所示,

$item_arr = array("102","103","102","101","103","101","103","103","101");


我们必须像下面这样安排

101 102 103 101 103 103 101 102 103


同样,如果数组列表如下所示,

$item_arr = array("103","101","102","103","102","102","102","103","102");


我们必须像下面这样安排

101 102 103 102 102 103 102 102 103

$rtr_item_arr = arrange_item($item_arr);
function arrange_item($results)
{
    $last_val="";
    $unique_only = array();
    $additional = array();
    foreach($results as $val):

        if(in_array($val, $unique_only)):
            $additional[] = $val;
        endif;

        if($val != $last_val  && !in_array($val,$unique_only)):
            echo $val." ";
            $unique_only[] = $val;
        endif;
        $last_val = $val;

    endforeach;

    $additional = array_filter($additional);
    if(!empty($additional)):
        arrange_item($additional);
    endif;
}


如何安排它以保持相似性另一方面,如何安排好。

有什么建议吗?

最佳答案

无论从数据库中发出什么顺序,您似乎都在重复101、102、103的模式。
我看不到您的SQL,但您可以按101、102、103字段分组并计算每个实例的实例数,然后按101,102,103字段排序并创建一个关联数组:

$item_arr = array(101=>count of 101,102=>count of 102,...)


然后在PHP中使用从0到最高计数的循环将它们排列在另一个数组中。每次通过循环,如果值> 0,则将每个键添加到新数组中,并从每个键值对的值中减去1。

关于php - 如何像我的示例一样从MySQL数据库安排项目数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22279401/

10-12 22:32