PHPの便利な配列用関数21選[後編]

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文を併用する際は厳密な比較を行う必要があります。

array_search()の検索結果次第で条件分岐する例
<?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を返します。

in_array()の使用例
<?php
$colors = array(
        0 => 'red',
        1 => 'orange',
        2 => 'blue'
    );
    
if (in_array('red', $colors)) {
    echo 'ありました';
} else {
    echo 'ありませんでした';
}
// ありました

並べ替え

sort() 配列をソートする

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()と同様に文字列にも対応しています。

rsort()の使用例
<?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()は、連想配列のキーと値の組み合わせを維持したまま、並び順だけ昇順に変えてくれる関数です。

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()は、連想配列のキーと値の組み合わせを維持したまま、並び順だけ降順に変えてくれる関数です。

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()は、配列の要素の順番をランダムにしてくれます。

キーは全て新しく割り振られるので、連想配列のときは特に注意が必要です。

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()の引数に配列を渡すと、その配列の要素数を返してくれます。

count()の使用例
<?php
$fruits = array(
        0 => 'apple',
        1 => 'banana',
        100 => 'orange'
    );
    
$result = count($fruits);
var_dump($resut);
// int(3)

array_map() 配列の要素にコールバック関数を適用する

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()は、引数に渡した配列からランダムにキーを返してくれます。

array_rand()の使用例
<?php
$numbers = [1, 2, 3, 4, 5];
$key = array_rand($numbers);
var_dump($key);
// int(2)

第二引数に任意の数値を入れることで、複数のキーを取得することもできます。

array_rand()で複数のキーを取得する例
<?php
$numbers = [1, 2, 3, 4, 5];
$key = array_rand($numbers, 2);
var_dump($key);
// array(2) { [0]=> int(0) [1]=> int(4) }

私が知っておいた方が良いと思った配列関連の関数は以上です!

全部知っていた方も知らない関数があった方も、一緒にPHP楽しんでいきましょ~?

MEMO

ここにない関数ももっと知りたい方は、こちらをご覧ください:)

https://www.php.net/manual/ja/ref.array.php