对数组中的值进行排序

Sort Values in array

我正在尝试弄清楚如何在对数组内的变量进行计数后对结果进行排序。下面是我得到的列表,我想按 $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'];  
    }

这会让您朝着正确的方向前进。

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

$count = count($arr);

// $count 等于 3

$sort = arsort($arr);

// $sort 等于 [ 2 => 3, 1 => 2, 0 => 1]

替换

asort($value);

with($newArray 的键的升序)

sort($newArray);

或与($newArray 值的降序):

arsort($newArray);

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

假设我已经正确理解了你的问题,你需要有一个新数组,其中包含 $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