从数组中查找最小的 n 个元素

思路

  • 先对数组进行冒泡排序,再按规定的个数顺序取值
  • 保留数组的 key 值可以先将原数组进行键值反转,再根据值还原数组的键

编码实现


function handler($arr, $n) {
  $result = [];
  $filp = array_flip($arr);
  sort($arr);
  for ($i = 0; $i < $n; $i++) {
    $result[$filp[$arr[$i]]] = $arr[$i]; // 还原 key
  }
  ksort($result);
  return $result;
}

$arr = [1, 100, 20, 22, 33, 44, 55, 66, 23, 79, 18, 20, 11, 9, 129, 399, 145, 2469, 58];
print_r(handler($arr, 5)); // [1, 18, 20, 11, 9]
文档信息
发表日期:2020-01-27