0
0

More than 1 year has passed since last update.

PHP:配列の並び替えも注意点ある。キーが消え去るケースもあるので要注意(sort、rsort、asort、arsort、ksort、krsort)

Last updated at Posted at 2023-02-17

sort関数:配列の要素を昇順に並び替える

※降順 rsort

注意点!! キーが消え去り、キーは0から順番に割り振られてしまう。
これがマッチする用途もあるのだろうが知らないと怖い。

$arr1 = [3, 1, 2];
sort($arr1);
var_dump($arr1); // [0] => int(1) [1] => int(2) [2] => int(3)
$arr2 = ['a' => 3, 'b' => 1, 'c' => 2];
sort($arr2);
var_dump($arr2); // [0] => int(1) [1] => int(2) [2] => int(3)

asort関数:キーと値のペアを維持しつつ配列の要素を昇順に並び替え

※降順 arsort

$arr3 = ['a' => 3, 'b' => 1, 'c' => 2];
sort($arr3);
var_dump($arr3); // ['b'] => int(1) ['c'] => int(2) ['a'] => int(3)

ksort:配列のキーを昇順に並び替え

※降順 krsort

$a = array('K'=>32,'D'=>77,'A'=>8,'B'=>9);
print_r($a);

var_dump(ksort($a)); // 第2引数を指定していないので、SORT_REGULARでソート
print_r($a);

実行結果

Array
(
    [K] => 32
    [D] => 77
    [A] => 8
    [B] => 9
)
bool(true)
Array
(
    [A] => 8
    [B] => 9
    [D] => 77
    [K] => 32
)

結論:ケースに合わせて使い分ける

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0