このような配列を持っています。
Array
(
[0] => Array
(
[tipo] => Mn
[tsk] => Vr
[date] => 14-06
[J] => 4
[H] => 0
[O] => 0
)
[1] => Array
(
[tipo] => Ds
[tsk] => Mv
[date] => 14-06
[J] => 0
[H] => 0,5
[O] => 0
)
[2] => Array
(
[tipo] => Vr
[tsk] => Do
[date] => 14-06
[J] => 0
[H] => 0
[O] => 5
)
[3] => Array
(
[tipo] => Cl
[tsk] => REG
[date] => 14-06
[J] => 0
[H] => 4.25
[O] => 0
)
[4] => Array
(
[tipo] => Cl
[tsk] => MB10
[date] => 14-06
[J] => 0
[H] => 3.5
[O] => 0
)
)
J、H、O キーで並べ替える必要があります。つまり、最初に J に値を持つすべてのサブ配列、次に H に値を持つサブ配列、次に O に値を持つサブ配列を持つ必要があります。 注:これらの列は互いに排他的であるため、値が 0 より大きい場合、他の 2 つは 0 しか持てません。
私は多くのことを試しましたが、明らかに、この一見単純なタスクは私の頭の中にあります。私が得た最も近いものはarray_multisortでしたが、それを機能させることはできません. 私はこのようなものがうまくいくはずだと思った:
foreach ($data as $key => $row) {
$J[$key] = $row['J'];
$H[$key] = $row['H'];
$O[$key] = $row['O'];
}
array_multisort($J, SORT_ASC, $H, SORT_ASC, $O, SORT_ASC, $data);
しかし、そうではありません。