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);