PHPで配列のkeyを取得する方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPで配列のkeyを取得する方法について解説しています。PHPの配列のkeyとは、配列の添字(インデックス)や連想配列のキーのことです。配列のkeyを取得するにはarray_keys関数を使います。array_keys関数は、戻り値としてkey名だけの新しい配列を返してくれます。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

今回は、PHPで配列のkeyを取得する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

PHPについてそもそもよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、PHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPで配列のkeyを取得する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 
この記事では、PHPで配列のkeyを取得する方法について記載しています。まだPHPでの開発に慣れていない方でも理解できる内容となっています。
 

目次

  1. 配列のkeyとvalueについて
  2. array_keys関数の使い方
  3. 実際に書いてみよう
  4. まとめ

 

配列のkeyとvalueについて

PHPでは連想配列という配列において、keyとvalueのセットで連想配列にデータを格納します。

通常の配列においては、添字(インデックス)という数字でデータ(value)の格納場所に番号を振っています。

通常の配列:

<?php
$array = ["りんご", "れもん", "もも"];
print_r($array);

echo $array[1];
?>

実行結果:

Array
(
    [0] => りんご
    [1] => れもん
    [2] => もも
)
れもん

それに対して、連想配列は、添字(インデックス)の代わりにデータ(value)を入れる箱に「key」という任意の名前をつけて管理します。

連想配列:

<?php
$array = ["apple" => "りんご", "lemon" => "れもん", "peach" => "もも"];
print_r($array);

echo $array["lemon"];
?>

実行結果:

Array
(
    [apple] => りんご
    [lemon] => れもん
    [peach] => もも
)
れもん

このようにPHPの連想配列は、「key」と「value」のセットでデータを管理します。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

array_keys関数の使い方

PHPのarray_keys関数は、連想配列の「key」だけを取得する関数です。

それでは、array_keys関数の使い方について見ていきましょう。

array_keys関数の使い方①:

array_keys($連想配列)

array_keys関数の引数に連想配列を渡すことで、「key」だけを抽出した配列として返却します。

array_keys関数の使い方②:

array_keys($連想配列, $検索するvalue [, $型チェック = FALSE])

 

2つ目の使い方として、第一引数に連想配列を渡し、第二引数に連想配列の中のvalueから検索したい値を渡すことで、検索するvalueとセットになっているkeyを抽出し、配列にして返却します。

また、第三引数はオプションで、引数を渡さなくても大丈夫なのですが、boolean型のtrueを渡すことで、第二引数に渡した「検索するvalue」のデータ型まで完全に一致するものを連想配列の中から探します。

デフォルトではboolean型のfalseが設定されているので、データ型が完全に一致しなくても検索対象となります。
 

実際に書いてみよう

それでは、実際にarray_keys関数を使用して、連想配列にkeyを抽出する例を見て行きましょう。
 

array_keysの使い方①

まずは、上記のarray_keys使い方①の連想配列のkeyを全て抽出する方法について見ていきましょう。

サンプルコード:

<?php
$array = ["apple" => "りんご", "lemon" => "れもん", "peach" => "もも"];

// 連想配列のkeyを抽出し、配列にして返却
$keys = array_keys($array);

print_r($keys);
?>

実行結果:

Array
(
    [0] => apple
    [1] => lemon
    [2] => peach
)

実行結果から、連想配列$arrayのkeyが全て抽出され、$keysに配列として返却されていることが確認できます。
 

array_keysの使い方②

次に、上記のarray_keys使い方②の第二引数に「検索するvalue」を渡して対象のvalueとセットとなるkeyを抽出する例を見ていきましょう。

サンプルコード:

<?php
$array = ["apple" => "red", "lemon" => "yellow", "peach" => "pink", "banana" => "yellow"];

// "yellow"のvalueとセットのkeyを抽出する
$keys = array_keys($array, "yellow");

print_r($keys);
?>

 

実行結果:

Array
(
    [0] => lemon
    [1] => banana
)

上記では、第二引数に文字列”yellow”を渡すことで、”yellow”をvalueとして持つkeyを抽出して、出力しています。

実行結果では、”yellow”をvalueに持つkeyの”lemon”と”banana”抽出され、配列として返却されているのが確認できます。
 

検索するvalueのデータ型までチェックする

続いて、array_keys関数の使い方②の第三引数にtrueを渡した場合の例を見ていきましょう。

サンプルコード:

<?php
$array = [
 'sandwich' => '150',
 'chicken' => '100',
 'potato' => 100,
 'salad' => 150
 ];

// 数値の100をvalueに持つkeyを抽出する
$keys = array_keys($array, 100, true);

print_r($keys);
?>

 

実行結果:

Array
(
    [0] => potato
)

上記の例では、array_keys関数の第三引数にboolean型のtrueを渡すことで、第二引数に渡す「検索するvalue」の値とデータ型が一致するkeyを連想配列の中から抽出しています。

第二引数には、数値の100を渡しているので、値とデータ型が一致するvalueを持つkeyの”potato”が抽出されているのが確認できます。

同じ「100」でもデータ型が文字列の100をvalueに持つkeyの”chicken”は、抽出されません。
 

まとめ

以上、array_keys関数を使用して、連想配列のkeyを抽出する方法について解説しました。

array_keys関数は引数の数によって機能が異なる関数なので、使い方をしっかりマスターし、状況に応じて使い分けましょう。
 

筆者プロフィール

平野大輝(ひらのだいき)

スキル:PHP・Java・JavaScriptを用いて様々なアプリを開発するWebエンジニア。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、PHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。