如何在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/