利用できるPHPのバージョン | PHP 4, 5, 7 |
---|
array_values
関数は、配列のすべての値を取得する関数です。すべての値を取得する際に、値を添字配列にして返却します。
array_unique
関数を使った後で飛び飛びの添字配列のインデックスを再採番する際や、連想配列を添字配列へ変換する時に便利な関数です。
array_values ( 配列 );
array_values
関数のパラメータへは、第一引数へ 値を取得したい配列をセットします。
全ての値を取り出し、数値添字をつけた配列を返します。
連想配列で作られたデータをarray_values
関数を用いて、添字配列へ変換する方法を サンプルコードを使って解説します。
例えば、顧客IDがキー(key)となった顧客データの配列を、0から連番で採番するなどです。
連想配列
$variables = [
'0001' => ['name' => '山口 太郎', 'department' => '営業部', 'birthday' => '1999-01-01'],
'0024' => ['name' => '広島 太郎', 'department' => '総務部', 'birthday' => '1999-01-01'],
'0005' => ['name' => '鳥取 花子', 'department' => '営業部', 'birthday' => '1999-01-01'],
'0014' => ['name' => '島根 太郎', 'department' => '人事部', 'birthday' => '1999-01-01'],
'0004' => ['name' => '岡山 太郎', 'department' => '開発部', 'birthday' => '1999-01-01'],
'0235' => ['name' => '高知 花子', 'department' => '営業部', 'birthday' => '1999-01-01'],
'0675' => ['name' => '愛媛 太郎', 'department' => '営業部', 'birthday' => '1999-01-01'],
'6782' => ['name' => '福島 太郎', 'department' => '総務部', 'birthday' => '1999-01-01'],
'0435' => ['name' => '香川 花子', 'department' => '開発部', 'birthday' => '1999-01-01'],
'0078' => ['name' => '山田 太郎', 'department' => '経理部', 'birthday' => '1999-01-01'],
];
上記は、顧客IDがキー(key)の顧客データの配列です。このままキー(key)を振りなおしてもいいのですが、せっかくなのでIDを昇順で並び替えてから採番したいと思います。
配列のキー(key)で昇順ソートを行うにはksort
関数を用います。今回の例では、文字列のキー(key)を数値で並び替えをしたいので第二引き数へSORT_NUMERIC
を指定しています。
ksort関数
ksort( $variables, SORT_NUMERIC );
並び替え後の配列はこのようになります。
並び替えた配列をarray_values
関数を使って取得した結果が下記になります。
顧客IDであったキー(key)が、0からの連番になっている事がわかります。
array_values
関数は、array_unique
関数を利用後に飛び飛びになった配列のインデックスを詰めるのにも利用できます。下記ではarray_unique
関数と併せて利用する例をご紹介しています。