PHP排序阵列比较值并将较小的值延续



我有一个值,并比较我想更改数组的顺序

例如。这里3是值,所以我需要数组订单

5,6,1,2

因此,值少于3个阵列中的3个移动。

<?php
$value=3;
$array=array(6,2,5,1);
asort($array);
print_r($array);
?>

请查看以下代码,它可能会为您提供帮助。您需要将Array_filter与回电功能一起制作2个数组,然后您可以合并它们。

  $value=3;
  $array=array(6,2,5,1);
  asort($array);
  $right = array_filter($array, function($elem) use($value){
      return $elem < $value;
  });
  $left = array_filter($array, function($elem) use($value){
     return $elem > $value;
  });
  //print_r($right);
  //print_r($left);
  $res = array_merge($left,$right);
  print_r($res);
<?php
$value=3;
$output = $array;
foreach ($array as $k => $v) {
    if ($value >= $v) {
        unset($output[$k]);
        $output[] = $v;
    }
}
var_dump($output);

我使用了循环,看看它是否对您有帮助:

foreach ($array as $ele){
    if($ele < $value){
        $rightArr[] = $ele;
    }else{
        $output[] = $ele;
    }
}
echo "<pre>";
print_r(array_merge($output,$rightArr));

最新更新