1

我有一个问题。我必须得到 5 张图像,其中比率最高。我有表,其中键 = image_id 和值 = 平均评分。

下面是这个数组的 print_r

Array ( ['5'] => 5.00 ['4'] => 3.05 ['12'] => 3.00 ['11'] => 4.00 ['21'] => 2.11 ['53'] => 4.44 ) 

例如

['5'] => 5.00

表示 id = '5' 的 img 评分为 5.00

预期输出 2 个数组($id 和 $rating)

Array ( [0] => '5' [1] => '53' [2] => '11' [3] => '4' [4] => '12' )
Array ( [0] => '5.00' [1] => '4.44' [2] => '4.00' [3] => '3.05' [4] => '3.00' )

你能帮我吗?

4

2 回答 2

2

使用arsort(); array_slice();

您还可以避免使用array_keys();等函数创建 2 个单独的数组。数组值();

// Original array
$array = array(
    5 => 5.00,
    4 => 3.05,
    12 => 3.00,
    11 => 4.00,
    21 => 2.11,
    53 => 4.44
);

// Sort array & maintain keys
arsort($array);

// Now get the first 5 elements, keeping the keys
$array = array_slice($array, 0, 5, true);

// IDs
print_r(array_keys($array));

// Ratings
print_r(array_values($array));
于 2013-08-31T19:59:45.250 回答
0

您是否尝试过使用arsortuasort

于 2013-08-31T20:01:10.390 回答