PHPの配列が分かる

配列の要素

・キー
・値

代入

・値のみを代入 $array = array("Sunday","Monday","Tuesday");

※キーは自動的に0、1、2…となる

・キーと値を代入 $array = array(0 => "Sunday", 1 => "Monday", 2 => "Tuesday");

デバッグ用に出力

print_r($array);

ソート

・sort($array); 値で昇順。キーは0、1、2…と振り直される
・rsort($array); 値で降順。キーは0、1、2…と振り直される
・asort($array); 値で昇順。キーと値の関係を維持
・arsort($array); 値で降順。キーと値の関係を維持
・ksort($array); キーで昇順。キーと値の関係を維持
・krsort($array); キーで降順。キーと値の関係を維持
・natsort($array); 値で自然昇順

要素の数を数える

・$num = count($array);
・$num = sizeof($array);

「count」または「sizeof」を利用した追加用の慣用句

・$array[sizeof($array)] = "値";
・$array[count($array)] = "値";

値の数を集計

$shukei = array_count_values($array);

※「キー:引数配列の値、値:数」の配列を返す

配列の足し算

・$array3 = $array1 + $array2;

→$array1に$array2が結合された配列ができる
※キーが重複した場合はその$array2の要素は追加されない

・$array3 = array_merge($array1,$array2);

※キーが数値の場合、重複キーを気にせず単純に追加
※キーが文字列の場合、重複キーは後勝ち

特定の値が含まれているか検査

if (in_array("値",$array)) {

}

※含まれていればTRUEを返す

特定のキーが含まれているか検査

array_key_exists("値",$array)

※含まれていればTRUEを返す

特定の値が含まれる要素のキーを返す

array_search("値",$array)

※複数の要素が該当する場合は最初のキーを返す
※該当する要素がない場合はFALSEを返す

値を分離して新たな配列に

$array2 = array_values($array1);

※キーは0、1、2…

キーを分離して新たな配列に

$array2 = array_keys($array1);

※キーは0、1、2…

キーと値に合成

$array3 = array_combine($array1,$array2);

→$array1の値をキーに、$array2の値を値とする新たな配列ができる

※$array1と$array2は同じ要素数でなければならない
※重複キーは後勝ち

複数の配列に共通の値を抽出

$array3 = array_intersect($array1,$array2);

※キーは$array1のキー

要素数を指定して分割

$array2 = array_chunk($array1,$kazu);

※分割した配列が値となる新たな配列ができる。キーは0、1、2…

キーを大文字/小文字に統一

大文字に統一 $array = array_change_key_case($array,CASE_UPPER);
小文字に統一 $array = array_change_key_case($array,CASE_LOWER);

※重複キーは後勝ち

配列の一部を抽出する

$array2 = array_slice($array1,$start,$kazu);

→数値のキーは0、1、2…と振り直される
 文字列のキーはそのまま

値を複数の変数に代入

list($a,$b,$c) = $array;

※変数の数未満の数値キーの値しか代入されない

文字列を分割

$array = explode("分割の基準となる文字列","$text");

→分割した値は配列として返される

$array = explode("分割の基準となる文字列","$text",2);

→3番目のパラメータに数値を設定すると、その数までしか分割しない
 「2」なら、$array[0]、$array[1]の2つのみ

配列を文字列に結合

$text = implode("結合文字列",$array);

文字コード変換

mb_convert_variables("UTF-8","SJIS",$array);

配列のキーをランダムに取り出す

$key = array_rand($array);