PHPの配列関連でよく使う関数や知っておくと便利な関数を21個に厳選してご紹介しています✨
前編はこちらをご覧ください。
PHPの便利な配列用関数21選[前編]配列の値を検索する
array_search() 指定した値を配列で検索しキーを返す
array_search()は、第一引数に検索したい値を、第二引数に検索対象の配列を渡すことで対応するキーを返してくれる関数です。
<?php
$colors = array(
0 => 'red',
1 => 'orange',
2 => 'blue'
);
$red_key = array_search('red', $colors);
var_dump($red_key);
// 0
上記のように検索結果のキーが0として返ってくることもあれば、見つからずにfalseが返ってくることもあるので、if文を併用する際は厳密な比較を行う必要があります。
<?php
$colors = array(
0 => 'red',
1 => 'orange',
2 => 'blue'
);
$green_key = array_search('green', $colors);
var_dump($green_key);
if ($green_key === false) {
echo '見つかりませんでした';
} else {
echo $colors[$green_key];
}
in_array() 配列に値があるかチェックする
in_array()は、第一引数の値が第二引数の配列に含まれていればtrue、なければfalseを返します。
<?php
$colors = array(
0 => 'red',
1 => 'orange',
2 => 'blue'
);
if (in_array('red', $colors)) {
echo 'ありました';
} else {
echo 'ありませんでした';
}
// ありました
並べ替え
sort() 配列をソートする
sort()は、配列の値が昇順(小さい順)になるように並べ替えてくれる関数です。
値は数値だけでなく、文字列にも対応しています。
<?php
$colors = array(
0 => 'red',
1 => 'orange',
2 => 'blue'
);
sort($colors);
var_dump($colors);
// array(3) { [0]=> string(4) "blue" [1]=> string(6) "orange" [2]=> string(3) "red" }
rsort() 配列を逆順にソートする
rsort()は、配列の値が降順(大きい順)になるように並べ替えてくれる関数です。
sort()と同様に文字列にも対応しています。
<?php
$colors = array(
0 => 'red',
1 => 'orange',
2 => 'blue',
3 => 'yellow'
);
rsort($colors);
var_dump($colors);
// array(4) { [0]=> string(6) "yellow" [1]=> string(3) "red" [2]=> string(6) "orange" [3]=> string(4) "blue" }
asort() 連想キーと要素との関係を維持しつつ配列をソートする
asort()は、連想配列のキーと値の組み合わせを維持したまま、並び順だけ昇順に変えてくれる関数です。
<?php
$points = array(
'math' => 100,
'japanese' => 80,
'sience' => 85
);
asort($points);
var_dump($points);
// array(3) { ["japanese"]=> int(80) ["sience"]=> int(85) ["math"]=> int(100) }
arsort() 連想キーと要素との関係を維持しつつ配列を逆順にソートする
arsort()は、連想配列のキーと値の組み合わせを維持したまま、並び順だけ降順に変えてくれる関数です。
<?php
$points = array(
'math' => 100,
'japanese' => 80,
'sience' => 85
);
arsort($points);
var_dump($points);
// array(3) { ["math"]=> int(100) ["sience"]=> int(85) ["japanese"]=> int(80) }
shuffle() 配列をシャッフルする
shuffle()は、配列の要素の順番をランダムにしてくれます。
キーは全て新しく割り振られるので、連想配列のときは特に注意が必要です。
<?php
$points = array(
'math' => 100,
'japanese' => 80,
'sience' => 85
);
shuffle($points);
var_dump($points);
// array(3) { [0]=> int(85) [1]=> int(100) [2]=> int(80) }
その他
count() 要素の数を返す
count()の引数に配列を渡すと、その配列の要素数を返してくれます。
<?php
$fruits = array(
0 => 'apple',
1 => 'banana',
100 => 'orange'
);
$result = count($fruits);
var_dump($resut);
// int(3)
array_map() 配列の要素にコールバック関数を適用する
array_map()の第一引数にコールバック関数の関数名を渡し、第二引数に配列を渡すと、配列の各要素にそのコールバック関数を適用した配列を返してくれます。
<?php
function double($n)
{
return ($n * $n);
}
$numbers = [1, 2, 3, 4, 5];
$doubled_numbers = array_map('double', $numbers);
var_dump($doubled_numbers);
// array(5) { [0]=> int(1) [1]=> int(4) [2]=> int(9) [3]=> int(16) [4]=> int(25) }
array_rand() 配列から一つ以上のキーをランダムに取得する
array_rand()は、引数に渡した配列からランダムにキーを返してくれます。
<?php
$numbers = [1, 2, 3, 4, 5];
$key = array_rand($numbers);
var_dump($key);
// int(2)
第二引数に任意の数値を入れることで、複数のキーを取得することもできます。
<?php
$numbers = [1, 2, 3, 4, 5];
$key = array_rand($numbers, 2);
var_dump($key);
// array(2) { [0]=> int(0) [1]=> int(4) }
私が知っておいた方が良いと思った配列関連の関数は以上です!
全部知っていた方も知らない関数があった方も、一緒にPHP楽しんでいきましょ~?