概要

連想配列を扱っていると、「キーだけ全部欲しい」「値だけ並べたい」という場面がよく出てくる。たとえば設定ファイルに含まれる項目名を列挙したい時はキー、合計を集計したい時は値だけが必要、というように 片方だけを取り出して使いたい ケースだ。これを 1 行で実現する関数が array_keysarray_values

array_keys($arr) は連想配列のキーを集めて 添字配列 として返し、array_values($arr) は値を同じく添字配列として返す。返り値が「キー 0, 1, 2... の素直な添字配列」になるのがポイントで、ここから count() で要素数を数えたり、foreach で順に処理したり、implode() で連結したりと、添字配列向けの関数群がすべて使えるようになる。array_values は「連想配列の構造を捨ててリストに変換する」用途でも頻出する。

逆方向の操作には array_combine($keys, $values) がある。array_keysarray_values で分解した配列を、後で別の組み合わせに再合成したい時の関数だ。この章ではまず分解側の 2 関数に集中して、ドリル 03 の「キーに特定の文字列を含むものを数える」で array_keys の典型的な使い方 (条件フィルタの前段) を体験する。

学習目標

ドリル

no 内容
01 array_keys で全キーを 1 行ずつ出力
02 array_values で全値を 1 行ずつ出力
03 キーに特定の文字列を含むキーの数を数える

演習: ドリル 01 — array_keys でキー一覧

問題

以下の連想配列が与えられています。

$scores = [
    'math'    => 80,
    'english' => 70,
    'science' => 90,
];

array_keys を使ってキー一覧を取り出し、上から順に 1 行ずつ出力してください。

期待される出力:

math
english
science

ヒント

演習: ドリル 02 — array_values で値一覧

問題

以下の連想配列が与えられています。

$scores = [
    'math'    => 80,
    'english' => 70,
    'science' => 90,
];

array_values を使って値一覧を取り出し、上から順に 1 行ずつ出力してください。

期待される出力:

80
70
90

ヒント

演習: ドリル 03 — 特定の文字を含むキーを数える

問題

以下の連想配列が与えられています。

$items = [
    'apple'  => 100,
    'banana' => 200,
    'grape'  => 150,
    'peach'  => 300,
];

キーに 文字 a を含む ものが何個あるかを数え、その数を 1 行で出力してください。

期待される出力:

4

ヒント

この章を AI に聞く

  1. 「ch05 — array_keys / array_values」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch05 — array_keys / array_values」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch05 — array_keys / array_values」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch05 — array_keys / array_values」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE