知っておくと便利! 開発で稀に使うPHPの配列操作関数まとめ

こんにちは! 池島です。
 
今回はメジャーではないPHPの配列操作の関数をご紹介したいと思います。頻繁に利用はしませんが、便利なものも多いので、知っておいてもらえると嬉しいです。

検証環境

今回検証を行ったPHPのバージョンは以下の通りです。

PHP
8.1.17

配列から要素を検索 array_search関数

array_search($str, $array)

$arrayの値から$strが存在するか先頭より検索し、最初に合致したキーを返却します。例えば以下の通り利用します。
<?php
    $committeeArray = array(
        "yamada" => "図書",
        "tanaka" => "掃除",
        "suzuki" => "生物",
        "sasaki" => "美化",
        "saitou" => "掃除"
        );
    // リストにから値を検索してキーを取得
    echo array_search("図書", $committeeArray);
?>

実行結果は以下の通りです。
yamada

また、検索に一致するすべてキーを取得したい場合はarray_keysを利用します。
array_keys($array, $value)

以下サンプルです。
<?php
    $committeeArray = array(
        "yamada" => "図書",
        "tanaka" => "掃除",
        "suzuki" => "生物",
        "sasaki" => "美化",
        "saitou" => "掃除"
        );
    // リストから値を検索してキーを取得
    print_r(array_keys($committeeArray, "掃除"));
?>

実行結果は以下の通りです。
Array
(
    [0] => tanaka
    [1] => saitou
)

配列操作で特定の値を検知したいけれど、どこに値が格納されるか不定の場合に活用されることがあります。

配列から重複した値を削除 array_unique関数

array_unique($array)

$arrayから重複した値を削除します。重複する値がある場合、より先頭の要素が保持されます。例えば以下の通り利用します。
<?php
    $committeeArray = array(
        "yamada" => "図書",
        "tanaka" => "掃除",
        "suzuki" => "生物",
        "sasaki" => "美化",
        "saitou" => "掃除"
        );
    // リストから重複した値を削除
    print_r(array_unique($committeeArray));
?>

実行結果は以下の通りです。
Array
(
    [yamada] => 図書
    [tanaka] => 掃除
    [suzuki] => 生物
    [sasaki] => 美化
)

重複したデータがある場合に、一つにまとめる際によく利用されます。

配列の一部を取得 array_slice関数

array_slice($array, $offset, $length)

$arrayから、$offsetで指定した開始位置から、$lengthで指定した長さ分配列を取得します。例えば以下の通り利用します。
<?php
    $resultArray = array(
        "message" => "データの取得に成功しました",
        "value1" => "AAA",
        "value2" => "BBB",
        "value3" => "CCC",
        "status" => "200"
        );
    // リストの指定した位置から、指定した長さの要素を取得
    print_r(array_slice($resultArray, 1, 3));
?>

実行結果は以下の通りです。
Array
(
    [value1] => AAA
    [value2] => BBB
    [value3] => CCC
)

配列の形が決まっている物に対して、特定カラムだけ抜きだしたい場合に利用します。

配列から特定キーの値を取得 array_column関数

array_column($array, $key)

入れ子になっている配列である$arrayから、指定した$keyをキーに持つ値だけ取得します。例えば以下の通り利用します。
<?php
    $records = array(
        array(
            'id' => 1,
            'value_en' => 'apple',
            'value_ja' => 'りんご'
        ),
        array(
            'id' => 2,
            'value_en' => 'banana',
            'value_ja' => 'バナナ'
        ),
        array(
            'id' => 3,
            'value_en' => 'onion',
            'value_ja' => 'タマネギ'
        )
    );
    // 入れ子のリストから特定のキーの値を取得
    print_r(array_column($records, 'value_ja'));
?>

実行結果は以下の通りです。
Array
(
    [0] => りんご
    [1] => バナナ
    [2] => タマネギ
)

データベースへの検索を行う際、その結果が配列の入れ子構造になって取得されることがよくあります。そういった際に取得したいキーを指定してarray_columnを利用すると、欲しいデータだけ抜き出すことができます。

まとめ

いかがでしたでしょうか。
 
普段から活躍するものではないですが、特定の操作をしたいときに光るものがありますので、是非覚えておいてください。
 
ではまた!
 
 
 
 
《関連記事》

PHPの配列操作関数まとめ<その2>
技術
2023.12.15(Fri)

仕事でよく使う! PHPの配列操作関数まとめ<その2>

#まとめ#プログラム#PHP

PHPの配列操作関数まとめ<その1>
技術
2023.12.8(Fri)

仕事でよく使う! PHPの配列操作関数まとめ<その1>

#まとめ#プログラム#PHP

PHPのusortの使い方
技術
2023.9.13(Web)

独自ルールでソート実装! PHPのusortの使い方

#PHP

記事をシェア
MOST VIEWED ARTICLES