PHPの配列について | 15g.jp

Pocket

概要

複数の変数を一つの変数に入れたもの。
型はバラバラでも問題ない。また、配列に配列を入れることも可能
arrayなど、配列の最後にカンマを付ける場合があるが、あってもなくても良い
基本的にプログラムは「無くて良いものは無い方が良い」という考えだが、
このカンマに関してはあったほうが良い。保守の際に見落としが少なくなる

単純な配列

$array = array( 1, 2, 3, );
または
$array = [
1,
2,
3,
];

キーと値のペアが連想配列

$array = array(
key => value,
key2 => value2,
key3 => value3,
)
または
$array = [
“foo” => “bar”,
“bar” => “foo”,
];
取得する時は
$array[‘foo’]; /* “bar”を取得できる */

なんでも格納可能。

$array = array( ‘version’ => 4,
‘OS’ => ‘Linux’,
‘lang’ => ‘english’,
‘short_tags’ => true
);

配列関数

一般的な配列関数

array — 配列を生成する
range — ある範囲の整数を有する配列を作成する。foreachと組み合わせると便利。forよりも読みやすくなる
count — 変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数える。空の配列でも0を返すので注意。sizeof()も同じ機能を持つ
in_array — 配列に値があるかチェックする。文字列の場合、大文字小文字が区別される

array_push — 一つ以上の要素を配列の最後に追加する。$array[] = $var; でも同じ
array_shift — 配列の先頭から要素を一つ取り出す。配列の要素数は1減る
array_pop — 配列の末尾から要素を取り除く。配列の要素数は1減る
array_unshift — 一つ以上の要素を配列の最初に加える

array_merge 配列のマージ(追加)
array_merge_recursive 配列の合成。変則的な配列を合成できる
array_map — 指定した配列の要素にコールバック関数を適用する
array_intersect — 配列の共通項を計算する
array_filter — コールバック関数を使用して、配列の要素をフィルタリングする。コールバック関数でFALSEを返したものを削除する
array_pad – 既存の配列を指定した値で埋め、コピーを返す。主にテスト用。
array_fill — 新規の配列を指定した値で埋める。主にテスト用。
array_count_values — 配列の値の数を数える。値それぞれをcountする
array_replace — 渡された配列の要素を置き換える
array_unique — 配列から重複した値を削除する
extract — 配列からシンボルテーブルに変数をインポートする。連想配列から変数を生成する。下手に使うと大変汚くなる。listよりも色々出来る
list() – 言語構造。extractと同じだが、機能が若干弱い

配列のソート関数

注意: 配列のソート関数は、すべて配列自身を直接変更します。 ソートした配列を新しく作って返すわけではありません。
http://php.net/manual/ja/array.sorting.php
sort — 配列をソートする。並び順などはオプションで指定
asort 値で昇順
arsort 値で降順
array_multisort 2次配列などをソートできる。
natsort — “自然順”アルゴリズムで配列をソートする
natcasesort — 大文字小文字を区別しない”自然順”アルゴリズムを用いて配列をソートする

配列関数。あまり使わないもの

array_intersect_ukey — キーを基準にし、コールバック関数を用いて 配列の共通項を計算する
array_column — 入力配列から単一のカラムの値を返す
array_chunk — 配列を分割する
shuffle — 配列をシャッフルする
array_rand — 配列から一つ以上の要素をランダムに取得する
array_reverse — 要素を逆順にした配列を返す
array_search — 指定した値を配列で検索し、見つかった場合に対応する最初のキーを返す
array_slice — 配列の一部を展開する。配列の一部を取り出す
array_walk — 配列の全ての要素にユーザー定義の関数を適用する。こういうのもできるよ、程度で
each — 配列から現在のキーと値のペアを返して、カーソルを進める。色々と面倒なのでforeach()の方が良さそう

他機能

classを配列に変換することもできる。
class d {
public $foo = 1;
public $bar = 2;
}
$f = new d();
v((array)$f);