如果全部相同,则获取数组或随机值中的最小值?

时间:2013-11-12 07:03:18

标签: php arrays

我有一个像这样的数组

Array
(
    [5] => 0
    [6] => 0
)

键5和键6是用户ID。两个键的值都是他们拥有的帖子数。

如何获得帖子最低的用户,如果有多个帖子相同/最低的用户,请随机选择一个。

谢谢

2 个答案:

答案 0 :(得分:0)

您需要min()表示数组中的最低值,array_rand()表示从数组中获取随机数。

$yourArr = array(4, 4, 3, 5);

$lowestEntry = min($yourArr);
$duplicateEntries = array_keys($yourArr, $lowestEntry);

echo (count($duplicateEntries) > 1)?$yourArr[array_rand($duplicateEntries, 1)]:$lowestEntry;

答案 1 :(得分:0)

假设你的数组是$arr

$mini = min($arr);
$user = array();
foreach ($arr as $key => $val){
    if ($val == $mini){
        // find the user with minimum value
        $user[] = $key;
    }
}
// print the user with minimum value
echo array_rand($user, 1).' '.$mini;