在数组中排序值

时间:2015-04-10 15:57:27

标签: php arrays sorting mysqli

我试图弄清楚如何在数组内计算变量后对结果进行排序。下面是我得到的列表,我想按$ value排序(我将爆炸)。我怎样才能按照$ value的顺序制作下面的丢失,即。 7,8将位于列表的首位?

数组和变量中的变量 $ values (以粗体显示)

11,6 ------ 1

9,8 ------- 1

9,6 ------- 2

7,8 ------- 4

这就是我如何计算数组中的变量并尝试排序。

//Count variables
$newArray = array_count_values($myArray);
asort($value);
foreach ($newArray as $key => $value) {
 echo "$key - <strong>$value</strong><br />"; 
}
print_r(array_count_values($myArray));

这就是数组的创建方式。

 $myArray = array();
    $sql="SELECT pic_id FROM pics";
    $query = mysqli_query($conn, $sql);
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
    $myArray[]=$row['pic_id'];  
    }

3 个答案:

答案 0 :(得分:0)

这应该让你朝着正确的方向前进。

$arr = [ 0 => 1, 1 => 2, 2 => 3 ];

$count = count($arr);

// $ count等于3

$sort = arsort($arr);

// $ sort等于[2 =&gt; 3,1 =&gt; ,0 =&gt; 1]

答案 1 :(得分:0)

替换

asort($value);

with(对于$ newArray的键的升序)

sort($newArray);

或with(对于$ newArray的值的降序):

arsort($newArray);

在这两种情况下,“7,8”都位于顶部。

答案 2 :(得分:0)

如果我已正确理解您的问题,您需要有一个新数组,其中$ myArray(pic_id)中的值按其出现次数按降序排序。以下代码应该有效:

$newArray = array_count_values($myArray);

arsort($newArray);

$v = array_keys($newArray);

print_r($v); 

生成的$ v数组是零索引数组,由$ myArray中的元素组成,如下所示:

7,8  9,6  9,8  11,6