PHP

【PHPの基礎】配列のキーを取得するarray_keys関数をマスターしよう!

今回解決できる内容!

✔️array_keys関数とは?

✔️array_keys関数の使い方は?

今回はarray_keys関数についてご説明します! 

関数の基礎に関しては下記の記事を参考にして下さい。

関数
【PHPの基礎】関数をマスターしよう! 今回解決できる内容! ✔️関数とはなんだろう? ✔️関数の使い方は? ...

独学がつらくなった方は下記をご覧ください!

>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!

array_keys関数とは

array_keys関数は、配列から全てのキーを取得して配列として返す関数です。

配列の基礎に関しては下記の記事を参考にして下さい!

>>【PHPの基礎】配列、連想配列をマスターしよう!

下記のように表記します。

array_keys( 配列名 [, 値 [, bool ]] );

第1引数:対象の配列を指定

第2引数:値を指定した場合は、指定した値のキーを返す

第3引数:tureを指定した場合は、第二引数に指定した値の型が同じかチェック。指定がなかった場合はfalseになる

第2引数に指定した値が無かった場合は、空の配列が返されます。

第3引数に関しては、特に分かりづらいので実際の例を確認してみてほしいです!

array_keys関数を使ってみよう!

配列のキーを取得する方法

実際のコードを確認してみましょう!

<?php

$array=['体育','国語','英語'];
$array_keys=array_keys($array);

var_dump($array_keys);

?>

結果は下記の通りです。

自動的に要素番号が振られ、要素数分のインデックスキーが取得されています。

第1引数のみを指定する場合

実際のコードを確認してみましょう!

<?php

$array=['得意'=>'体育','普通'=>'国語','不得意'=>'英語'];
$array_keys=array_keys($array);

var_dump($array_keys);

?>

結果は下記の通りです。

配列「$array」のキーである、「得意、普通、不得意」が取得されて配列として返されるので、上記のような結果になります。

第2引数を指定する場合

<?php

$array=['得意'=>'体育','普通'=>'国語','不得意'=>'英語'];
$array_keys=array_keys($array,'体育');

var_dump($array_keys);

?>

出力結果は下記の通りです。

第二因数に指定した文字列を配列$arrayのキーから探し出し、そのキー名が配列として返されます。

つまり指定された文字列「体育」のキー名「得意」が配列として返されます。

第3引数を指定する場合

まずは第3引数を指定していない下記のコードを確認して下さい。

<?php

$array=['佐藤'=>1,'伊藤'=>'1','斉藤'=>2,'佐々木'=>3];
$array_keys=array_keys($array,'1');

var_dump($array_keys);

?>

結果は下記の通りです。

本来厳密には「1」という文字列をキーとして持っているのは伊藤さんだけのはずですが、第3引数をしていない為、型の判断まで出来ていません。

そこで下記のように記述してみましょう。

<?php

$array=['佐藤'=>1,'伊藤'=>'1','斉藤'=>2,'佐々木'=>3];
$array_keys=array_keys($array,'1',true);

var_dump($array_keys);

?>

結果は下記の通りです。

第3引数にtrueを指定している為、第2引数の型の判断までできるようになりました。

array_keys関数は単純にキーの一覧を得るだけでなく、特定の値で検索できることができます!

独学でツラくなった方へ

まとめ

今回説明した内容

✅array_keys関数の使い方

✅array_keys関数の応用

今回は以上になります。

array_keys関数は慣れるまで使い方が難しいかもしれませんが、開発でもよく使われます。

是非今回でマスターできるようにしましょう。

配列における組み込み関数のまとめは下記の記事を参考にして下さい!

配列における組み込み関数
【PHPの基礎】PHPの配列における組み込み関数のまとめ!(追加|検索|結合|要素数|キーの存在) 今回解決できる内容 ✔️PHPの配列における組み込み関数を知りたい! 今回は配列における組み込み関...