テクノロジー
2023年2月2日配列を操作するさまざまな関数
配列の操作する便利な関数の使い方を理解する
目次
配列を操作する関数を使ってみる
sort関数
rsort関数
ksort関数
array_map関数
array_map(‘関数’, 配列);
配列の操作と戻り値について理解する
まとめ
公式ドキュメント・参考情報
配列を操作する関数を使ってみる
これまで配列を操作する関数についていくつか紹介してきましたが、他にもいくつか便利な機能を提供する関数が用意されています。
このテキストでは、それらの関数の機能と使い方について説明します。
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の内容は変更されていないことがわかります。
まとめ
**- 配列の並び替えや反復処理を行うための便利な関数が用意されている。
- 配列を操作する関数には、元の配列を変更する関数と、元の配列は変更せずに戻り値として操作後の配列を返す関数がある。**