2017-03-02 6 views
0

私が値を持っていると私は例えばの配列PHPのソート配列と小さな値をプッシュし、最後

の順序を変更したい、その値を比較します。私はその値が小さい3つのシフトその後、最後の配列で

5,6,1,2

なるように配列順序を必要とするので、ここでは3値です。

<?php 

$value=3; 

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

asort($array); 

print_r($array); 

?> 
+0

何をしたいの出力? –

+0

出力は配列(5,6,1,2) –

+0

にする必要があります。http://php.net/manual/en/function.usort.php –

答えて

1

以下のコードをご覧ください。 2つの配列を作成するためにコールバック関数でarray_filterを使用し、次にそれらをマージする必要があります。

$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
<?php 

$value=3; 
$output = $array; 

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

     $output[] = $v; 
    } 
} 

var_dump($output); 
1

私は、ループを使用し、それはあなたを助けている場合、以下を参照してください

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