1

次の配列があります。

$myarray = Array (
[1] => stdClass Object ( 
    [ID] => 1 
    [current] => 
)

[2] => stdClass Object ( 
    [ID] => 2 
    [current] => 1 
)

[3] => stdClass Object ( 
    [ID] => 3 
    [current] =>
)

[4] => stdClass Object ( 
    [ID] => 4 
    [current] =>
)

[5] => stdClass Object ( 
    [ID] => 5 
    [current] =>
)
)

そして、最初に現在の値を持ち、その後、はその現在のものの後にあったすべての項目を並べ替える必要があり、元は前にあった項目は結果配列の最後の項目になります。

したがって、新しい配列は次のようになります。

Array (
[1] => stdClass Object ( 
    [ID] => 2 
    [current] => 1 
)

[2] => stdClass Object ( 
    [ID] => 3 
    [current] =>
)

[3] => stdClass Object ( 
    [ID] => 4 
    [current] =>
)

[4] => stdClass Object ( 
    [ID] => 5 
    [current] =>
)

[5] => stdClass Object ( 
    [ID] => 1 
    [current] => 
)
)

それは非常に重要です

4

3 に答える 3

4

このusort()機能はあなたにとって興味深いものかもしれません。

usort($input,function($a,$b) {return $a['current']-$b['current'];});
于 2012-04-23T16:01:31.897 に答える
1

usort()関数を扱うことができます。

基本的に、カスタム オーダー関数を設定し、それを 2 番目のパラメーターとして usort() に渡します (最初のパラメーターは並べ替える配列です)。

コールバック関数内で、配列をソートする方法を定義できます。例えば

usort($array_to_sort, function($a,$b) {
    return $a['current']-$b['current'];
});
于 2012-04-23T16:06:23.880 に答える
0

要素の順序を同じに保ちたい場合は、配列を並べ替えずに、現在の要素が最初になるまで配列を回転させます。

while($myarray[0]['current']<>1) {
  array_push($myarray, array_shift($myarray));
}
于 2012-04-23T16:12:15.717 に答える