0

私は助けを探しています。私ksortはphpの他のソート方法を見つけました。しかし、私は。というキーを持つ配列の配列を取得しましたorder。そしてこれは私が配列の順序になりたい

array(
   array("obj" => $objPage, "id" => "LogIn", "order" => 3),
   array("obj" => $objPage, "id" => "Home", "order" => 1),
   array("obj" => $objPage, "id" => "Register", "order" => 2),
   array("obj" => $objPage, "id" => "Imprint", "order" => 4), /* ... */
)

今、私は配列オブジェクトを次のようにソートしたいと思います:

array(
   array("obj" => $objPage, "id" => "Home", "order" => 1),
   array("obj" => $objPage, "id" => "Register", "order" => 2),
   array("obj" => $objPage, "id" => "LogIn", "order" => 3),
   array("obj" => $objPage, "id" => "Imprint", "order" => 4), /* ... */
)

これを解決するためのヒントを教えてください。

4

3 に答える 3

0

array_multisortあなたにとって有効かもしれません:

配列が$myArrayと呼ばれると仮定します

foreach ($myArray as $key => $row) {   
    $order[$key] = $row['order'];
}

array_multisort($order, SORT_ASC, $myArray)
于 2012-05-17T20:19:48.107 に答える
0
function cmp($a, $b)
{
    if ($a ['order'] == $b ['order']) {
        return 0;
    }
    return ($a ['order'] < $b ['order']) ? -1 : 1;
}

usort($array, "cmp");

print_r ($array);
于 2012-05-17T20:02:48.277 に答える
0

かなり簡単な解決策は、配列インデックス自体を使用sortして順序を格納し、次に配列を順序に並べ替えてから、array_valuesインデックスを再作成することです。

于 2012-05-17T20:07:11.373 に答える