phpで配列のキーのみ取得や値のみ取得の方法

この記事には広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

配列のキーのみ取得にはarray_keysを使う

配列のキーすべて、あるいはその一部を返す

使い方

// 引数の配列キーだけを返します
array_keys(返したいキーを含む配列) : array()

どうゆう場面で使うか

連想配列を定数として宣言してから、定義したKEY部分だけを一括で取りたいってことがたまにあります。

DB値と画面表示文言が異なる場合にその組み合わせを連想配列で宣言したとします。

そうゆう場合に、「KEYだけ」とか「valueだけ」って感じで連想配列の一部を取りたいことがあります。

バリデーションのRule::in(配列)の引数とかね。

// データベースの値(key)と画面表示の文言(value)を保持した連想配列
$statusList = [
    'regular' => '正会員',
    'pause' => '休会中',
    'withdrawal' => '退会済',
    'temp' => '仮会員',
];

// KEY部分だけを配列で取得する(regularやpause)
$statusKeys = array_keys($statusList);

// バリデーションの実行例
$request->validate([
    'status' => [Rule::in($statusKeys )] // 会員のDB値のステータスでチェック
]);

Keyだけではなく、Valueだけを取得したいときは次章のarray_valuesを使います。

配列の値のみ取得にはarray_valuesを使う

引数で渡した配列の値(value)だけを再配列にし、返却します。返却値のKeyは数値添字になります。

使い方

// 引数の配列のバリューだけを返します
array_values(array $valueのみを返却させたい配列) : array()

引数で渡した配列の値(value)だけを再配列にし、返却します。返却値のKeyは数値添字になります。

どうゆう場面で使うか

使い方は前述のarray_keyと似ているので迷うことはないと思います。

$array = array("リンゴ" => "赤", "バナナ" => "黄", "ぶどう" => "紫");

array_values($array);


// 返却値は以下のようになる
Array
(
    [0] => 赤
    [1] => 黄
    [2] => 紫

)