【PHP日記】

自分の知識不足を悟った末、なるべく1日一回、Webに関する知識を書いていくだけのブログ。

PHPのビルドイン関数(配列編) 【11日目】

PHPにおいて最も重要といえる「配列操作」に関する関数をまとめました。 「新しい配列を返す」という記述がないものは配列を直接書き換えることを意味しています。


要素の追加・削除

関数名 概要 使用例
array_unshift() 配列の先頭に要素を追加する array_unshift(配列名, 追加する要素 ,...)
array_push() 配列の末尾に要素を追加する array_push(配列名, 追加する要素 ,...)
array_shift() 配列の先頭から要素を1つ削除する array_shift(配列名)
array_pop() 配列の末尾に要素を1つ削除する array_pop(配列名)



要素を切り出す

関数名 概要 使用例
array_slice() 指定した位置から個数ぶんを切り出す(新しい配列を返す $arr = array_slice(配列名, 位置*1, 個数)
array_splice() 指定した位置から個数ぶんを切り出す。第四引数を渡すと切り出した位置に要素を挿入する array_slice(配列名, 位置, 個数, 要素*2 )
array_uniqe() 配列から重複した値だけを切り出す(新しい配列を返す) $arr = array_uniqe(配列名)



要素を並び替える

関数名 概要 使用例
sort() 値を小さい順に並び替える sort(配列名)
rsort() 値を大きい順に並び替える rsort(配列名)
asort() キーを保持したまま、値を小さい順に並び替える asort(配列名)
arsort() キーを保持したまま、値を大きい順に並び替える arsort(配列名)
ksort() キーを小さい順に並び替える ksort(配列名)
krsort() キーを大きい順に並び替える krsort(配列名)
usort()*3 何を基準に並び替えるかを自分で定義できる usort(配列名, 関数)
shuffle() 値をシャッフルする shuffle(配列名)



配列を作成する

関数名 概要 使用例
array_fill() 指定した位置から要素を個数ぶんを埋めて配列を作る(新しい配列を返す) $arr = array_fill(位置, 個数, 要素)
range() 指定した要素から要素までの値で埋めた配列を作る。第三引数で何刻みかを指定できる(新しい配列を返す) $arr = range(要素, 要素, 数)



配列を計算する

関数名 概要 使用例
array_sum() 値を合計する array_sum(配列名)
max() 値から最大値を取り出す max(配列名)
min() 値から最小値を取り出す min(配列名)
count() 要素の個数をカウントする count(配列名)



配列同士を計算する

関数名 概要 使用例
array_merge()*4 配列の要素と要素を連結させる(新しい配列を返す) $arr = array_merge(配列名, 配列名)
array_diff() 配列にある要素から配列にある要素を引く(新しい配列を返す) $arr = array_diff(配列名, 配列名)
array_intersect() 配列同士の共通の要素を抽出する(新しい配列を返す) $arr = array_intersect(配列名, 配列名)



関数を適応させる

関数名 概要 使用例
array_map() 指定した関数を全ての要素に適応した結果で配列を作る(新しい配列を返す) $arr = array_map(関数, 配列名)
array_filter() それぞれの要素にtrueかfalseを返す関数を適応し、trueの場合のみ要素を取り出す(新しい配列を返す) $arr = array_filter(配列名, 関数)

array_map()の補足

array_mapに渡す関数は無名関数を用いることもできる。また配列のそれぞれの要素は引数$nで渡ってくる。

$arr = array_map(
    function($n) { return $n * 1.1; }
, $baseArr);

array_filter()の補足

以下は「3の倍数」ならtrueを返す関数を使った例である。

$arr = array_filter(
    $baseArr,
    function($n) {
        if($n % 3 === 0) { return true; }
);



キーや値を参照する

関数名 概要 使用例
array_keys() 配列からキーのみを取り出す(新しい配列を返す) $arr = array_keys(配列名)
array_values() 配列からキーのみを取り出す(新しい配列を返す) $arr = array_values(配列名)
array_key_exists() 特定のキーがあるかどうか調べる。trueもしくはfalseを返す array_key_exists(キー名, 配列名)
in_array() 特定の値があるかどうか調べる。trueもしくはfalseを返す in_array(値名, 配列名)
array_search() 値を検索して対応するキーを返す array_search(値名, 配列名)
array_rand() 配列からランダムな要素のキーをピックする(新しい配列を返す) $arr = array_rand(配列名, 数)




脚注

*1:『-』を指定すると末尾から数える

*2:配列も挿入できる

*3:https://dotinstall.com/lessons/basic_php_functions/53921

*4:大括弧の中に直接展開しても同じ意味になる $arrSum = [...$arrA, ...$arrB];