4

次のような単純な配列をソートするのに苦労しています。

Array
(
    [3] => Array
        (
            [0] => EU West (Ireland)
            [1] => eu-west-1
        )

    [7] => Array
        (
            [0] => South America (Sao paulo)
            [1] => sa-east-1
        )

    [0] => Array
        (
            [0] => US East (Virginia)
            [1] => us-east-1
        )

    [4] => Array
        (
            [0] => Asia Pasific (Tokyo)
            [1] => ap-northeast-1
        )

    [2] => Array
        (
            [0] => US West (Oregon)
            [1] => us-west-2
        )

    [1] => Array
        (
            [0] => US West (N. California)
            [1] => us-west-1
        )

    [5] => Array
        (
            [0] => Asia Pasific (Singapore)
            [1] => ap-southeast-1
        )

    [6] => Array
        (
            [0] => Asia Pasific (Sydney)
            [1] => ap-southeast-2
        )

)

この配列をIndexでソートしたい。使用ksort()しましたが、動作しません。出力 1 のままです。

4

3 に答える 3

6

ksort()ソートされた配列を返すのではなく、配列をその場でソートします。を呼び出した後ksort($array)、 の内容$arrayがソートされます。この関数は、並べ替えが成功したかどうかを返します。

例:

$array = array(1 => 1, 20 => 1, 5 => 1);

echo "Before ksort():\n";
print_r($array);

if (ksort($array)) {
    echo "ksort() completed successfully.\n";
}

echo "After ksort():\n";
print_r($array);

上記のプリント:

Before ksort():
Array
(
    [1] => 1
    [20] => 1
    [5] => 1
)
ksort() completed successfully.
After ksort():
Array
(
    [1] => 1
    [5] => 1
    [20] => 1
)

ksort()ただし、ksort()失敗を返すことさえできない状況でのみ失敗する可能性があるため、の戻り値をチェックしないでください。したがって、関数が戻るtrueか、スクリプトが停止するかのいずれかになります。その場合、戻り値は無関係です (常に になりますtrue)。

于 2012-11-19T10:14:39.720 に答える
1

Sort は配列の参照渡しを使用し、戻り値はブール値の成功または失敗です。私はあなたがやっていると仮定します

$myArray = ksort($myArray);

への変更

$sorted = ksort($myArray);
if (!$sorted) {
    echo 'Failed to sort';
}
于 2012-11-19T10:16:04.560 に答える
0

のように使う

ksort($array);

その後の印刷

print_r($array);

使用したことがある場合

print_r(ksort($array));

配列がソートされている場合は1を返します

于 2012-11-19T10:24:52.683 に答える