php

配列の応用

今回触れるのは、配列の要素を変数にする方法を書いていきます。
配列を変数にするには、list(),extract()を使用します。

extract($配列名,変換方法,"プレフィックス");

extract()は、配列のキー名を変数名、
値を変数の値とする処理を行います。
キー値が「japan」「america」なら「$japan」「$america」という
変数ができます。

$country["japan"] なら
$japan という変数ができます。

extract()の()内の第2引数の指定は、既に使われいる変数名とキー名が
同じ場合、どのような名前を付けるかどうか指定します。
下記の表をご覧ください。

変換方法 内容
EXTR_OVERWRITE 重複があったとき、上書きする
EXTR_SKIP 重複があったとき、上書きしない
EXTR_PREFIX_SAME 重複があったとき、プレフィックスを付ける
EXTR_PREFIX_ALL 全てにプレフィックスをつける

第3引数の指定はキー名の先頭に付す接頭辞(プレフィックス)を指定します。
「指定した値_」というプレフィックスが付すことができます。
たとえば、キーの値が「japan」「america」ある場合に「k」を指定すると、
「k_japan」「k_america」という変数ができます。

$country["japan"] なら
$k_japan という変数ができます。

配列のキーが数値である場合は、必ずプレフィックスを指定
しなければいけません。第2引数、第3引数の指定は省くことができます。

変数を配列にすることも可能です。
その際は、compact()を使います。

$配列名 = compact($変数名1,$変数名2,・・・・・);

サンプルコードの実行結果はこちら

配列を結合する

上記の通り2つの配列を結合することができます。
サンプルコードの47~54行目をみると、
2つの配列を用意しています。そのあと
array_merge()で結合しています。

$arrCity = array_merge($city1,$city2);

$配列名 = array_merge($配列名1,$配列名2,・・・・・・);

配列操作

配列に対する命令が上記以外にもあります。

名前 説明
in_array(値,$配列名) 配列に値があれば、trueを返す
array_search(値,$配列名) 配列に値があれば、キーを返す
array_values($配列名) 配列の値を添字を数値とした配列として返す
array_keys($配列名) 配列のキーを配列として返す
array_flip($配列名) 配列の値とキーを交換した配列を返す
array_combine($配列名1,$配列名2) 配列1の値をキー、配列2の値を値とする配列を帰す
array_sum($配列名) 配列の合計値を返す
array_rand($配列名) 配列からランダムな値を取得する
array_intersect($配列名1,$配列名2) 配列1と配列2の共通項を返す
array_diff($配列名1,$配列名2) 配列1、配列2の差分を返す

-php
-, ,