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