php排序数组比较值并最后推送较小的值

时间:2017-03-02 10:16:18

标签: php arrays sorting

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

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

5,6,1,2

所以数组中的值小于3位。

<?php

$value=3;

$array=array(6,2,5,1);

asort($array);

print_r($array);

?>

3 个答案:

答案 0 :(得分:1)

请查看以下代码,它可能会对您有所帮助。你需要使用带有回调函数的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);

答案 1 :(得分:1)

<?php

$value=3;
$output = $array;

foreach ($array as $k => $v) {
    if ($value >= $v) {
        unset($output[$k]);

        $output[] = $v;
    }
}

var_dump($output);

答案 2 :(得分:1)

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

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