テクノロジー

2023年2月2日

配列を操作するさまざまな関数

配列の操作する便利な関数の使い方を理解する

配列を操作する関数を使ってみる

これまで配列を操作する関数についていくつか紹介してきましたが、他にもいくつか便利な機能を提供する関数が用意されています。
このテキストでは、それらの関数の機能と使い方について説明します。

sort関数

sort関数は、配列を昇順でソートします。
sort関数の基本的な書き方は以下の通りです。

sort(配列);

[例]

<?php
 
$numbers = array(4, 6, 2, 22, 11);
sort($numbers);
print_r($numbers);

[実行結果]

$ php sample.php
Array
(
    [2] => 2
    [0] => 4
    [1] => 6
    [4] => 11
    [3] => 22
)

rsort関数

rsort 関数は、配列を降順で並べ替えます。
rsort関数の基本的な書き方は以下の通りです。

rsort(配列);

[例]

<?php
 
$numbers = array(4, 6, 2, 22, 11);
rsort($numbers);
print_r($numbers);

[実行結果]

$ php sample.php
Array
(
    [0] => 22
    [1] => 11
    [2] => 6
    [3] => 4
    [4] => 2
)

ksort関数

ksort 関数は、連想配列のキーを使って昇順に並べ替えます
ksort関数の基本的な書き方は以下の通りです。

ksort(配列);

[例]

<?php
 
$age = array(
    'Peter' => '35',
    'Ben'   => '37',
    'Joe'   =>'43',
);
ksort($age);
print_r($age);

[実行結果]

$ php sample.php
Array
(
    [Ben]   => 37
    [Joe]   => 43
    [Peter] => 35
)

array_map関数

array_map関数は、配列の各要素に指定した関数の処理を実行し、その結果得られた要素からなる配列を新たに作成して返します。
array_map関数の基本的な書き方は以下の通りです。

array_map(‘関数’, 配列);

以下の例は、配列の各要素に関数`myfunctionの処理を適用することで、各要素に2をかけた値からなる新たな配列を作成します。

[例]

<?php
 
function myfunction($n)
{
    return($n * 2);
}

$array = array(1, 2, 3, 4, 5);
$mapped = array_map('myfunction', $array);
print_r($mapped);

[実行結果]

$ php sample.php
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

このように、[1, 2, 3, 4, 5]の各要素に対して2の乗算が行われ、その値で構成される新しい配列[2, 4, 6, 8, 10]が生成されます。

配列の操作と戻り値について理解する

配列を操作する関数には、元の配列を変更する関数と、元の配列を変更しない関数とがあります。
例えば、先ほど紹介したsort関数は元の配列を変更しています。

[例]

<?php
 
$numbers = array(4, 6, 2, 22, 11);
sort($numbers);
print_r($numbers);

[実行結果]

$ php sample.php
Array
(
    [2] => 2
    [0] => 4
    [1] => 6
    [4] => 11
    [3] => 22
)

このように、元々の配列である$numbers自体が変更されています。
一方、array_map関数は元の配列は変化させずに、操作した結果が戻り値として返されます。
具体例を見てみましょう。

[例]

<?php
 
function myfunction($n)
{
    return($n * $n);
}
 
$array = array(1, 2, 3, 4, 5);
$mapped = array_map('myfunction', $array);
 
print_r($array);
print_r($mapped);

[実行結果]

$ php sample.php
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
)

上記のように、元々の配列$arrayの内容は変更されていないことがわかります。

まとめ

**- 配列の並び替えや反復処理を行うための便利な関数が用意されている。

  • 配列を操作する関数には、元の配列を変更する関数と、元の配列は変更せずに戻り値として操作後の配列を返す関数がある。**

公式ドキュメント・参考情報

1. sort

2. rsort

3. ksort

4. array_map

ダイビックのことをもっと知ってみませんか?