如何从我的例子中安排来自MySQL数据库的项目数据

时间:2014-03-09 07:09:32

标签: php mysql

如何在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;
}

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

请提出任何建议?

1 个答案:

答案 0 :(得分:0)

看起来你正在重复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。