ch05 8章中 5章目

ch05 — array_keys / array_values

スライドで見る

この章を AI と学ぶ

💬 AI に聞く質問例 3 件
  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

概要

連想配列を扱っていると、「キーだけ全部欲しい」「値だけ並べたい」という場面がよく出てくる。たとえば設定ファイルに含まれる項目名を列挙したい時はキー、合計を集計したい時は値だけが必要、というように 片方だけを取り出して使いたい ケースだ。これを 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 の典型的な使い方 (条件フィルタの前段) を体験する。

学習目標

  • array_keys($arr) でキーだけの添字配列を取り出せる
  • array_values($arr) で値だけの添字配列を取り出せる
  • 取り出した配列を foreach や count と組み合わせて使える

ドリル

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

解説スライド 全 6 枚

右の ボタン キー(またはスワイプ)で次のスライドに進めます。 下の「縦表示」を開くと全スライドを一気に読めます。

  1. array_keys / array_values

    Lesson 5 / Chapter 5

  2. 「キーだけ」「値だけ」が欲しい場面がある

    <?php
    $scores = [
        'math'    => 80,
        'english' => 70,
        'science' => 90,
    ];
    • 「科目名の一覧だけ欲しい」 → キーが欲しい
    • 「点数の一覧だけ欲しい」 → 値が欲しい

    foreach で取り出してもよいが、専用関数がある。

  3. array_keys($arr) でキーの配列

    <?php
    $scores = [
        'math'    => 80,
        'english' => 70,
        'science' => 90,
    ];
    
    $keys = array_keys($scores);
    print_r($keys);

    実行結果:

    Array
    (
        [0] => math
        [1] => english
        [2] => science
    )
    • 戻り値は 添字配列 (0, 1, 2 がキー)
    • 元の挿入順を保つ
  4. array_values($arr) で値の配列

    <?php
    $scores = [
        'math'    => 80,
        'english' => 70,
        'science' => 90,
    ];
    
    $values = array_values($scores);
    print_r($values);

    実行結果:

    Array
    (
        [0] => 80
        [1] => 70
        [2] => 90
    )
    • これも添字配列で返ってくる
    • 値だけ集めて array_sum で合計、なども書きやすい
  5. 取り出した配列を foreach する

    <?php
    $scores = [
        'math'    => 80,
        'english' => 70,
        'science' => 90,
    ];
    
    foreach (array_keys($scores) as $key) {
        echo $key . "\n";
    }

    実行結果:

    math
    english
    science
    • foreach (array_keys(...) as $key) は「キー一覧で回す」典型パターン
    • 添字配列を返すので、$nums[0] のように添字でもアクセスできる
  6. このチャプターでできるようになること

    array_keys($arr) でキー一覧の添字配列を取得できる ✅ array_values($arr) で値一覧の添字配列を取得できる ✅ 取り出した配列を foreach できる ✅ count で要素数を測れる

    → ドリルへ

1 / 6
📜 スライドを全部一気に読む(縦表示)

Lesson 5 / Chapter 5


「キーだけ」「値だけ」が欲しい場面がある

<?php
$scores = [
    'math'    => 80,
    'english' => 70,
    'science' => 90,
];
  • 「科目名の一覧だけ欲しい」 → キーが欲しい
  • 「点数の一覧だけ欲しい」 → 値が欲しい

foreach で取り出してもよいが、専用関数がある。


array_keys($arr) でキーの配列

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

$keys = array_keys($scores);
print_r($keys);

実行結果:

Array
(
    [0] => math
    [1] => english
    [2] => science
)
  • 戻り値は 添字配列 (0, 1, 2 がキー)
  • 元の挿入順を保つ

array_values($arr) で値の配列

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

$values = array_values($scores);
print_r($values);

実行結果:

Array
(
    [0] => 80
    [1] => 70
    [2] => 90
)
  • これも添字配列で返ってくる
  • 値だけ集めて array_sum で合計、なども書きやすい

取り出した配列を foreach する

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

foreach (array_keys($scores) as $key) {
    echo $key . "\n";
}

実行結果:

math
english
science
  • foreach (array_keys(...) as $key) は「キー一覧で回す」典型パターン
  • 添字配列を返すので、$nums[0] のように添字でもアクセスできる

このチャプターでできるようになること

array_keys($arr) でキー一覧の添字配列を取得できる ✅ array_values($arr) で値一覧の添字配列を取得できる ✅ 取り出した配列を foreach できる ✅ count で要素数を測れる

→ ドリルへ

この章で取り組む 演習問題の流れ (3ステップ)
  1. 01 ドリル 01 — array_keys でキー一覧 README.md starter.php answer.php
  2. 02 ドリル 02 — array_values で値一覧 README.md starter.php answer.php
  3. 03 ドリル 03 — 特定の文字を含むキーを数える README.md starter.php answer.php

演習問題の詳細

この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。

ドリル 01 — array_keys でキー一覧

問題

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

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

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

期待される出力:

math
english
science

ヒント

  • $keys = array_keys($scores);
  • foreach ($keys as $k) { echo $k . "\n"; }

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

ドリル 02 — array_values で値一覧

問題

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

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

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

期待される出力:

80
70
90

ヒント

  • $values = array_values($scores);
  • foreach ($values as $v) { echo $v . "\n"; }

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

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

問題

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

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

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

期待される出力:

4

ヒント

  • $keys = array_keys($items);
  • str_contains($key, 'a') で含むか判定
  • カウンタ変数 $count = 0; を増やす

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

演習問題(3問)

  1. ドリル 01 — array_keys でキー一覧

    README.md starter.php answer.php

  2. ドリル 02 — array_values で値一覧

    README.md starter.php answer.php

  3. ドリル 03 — 特定の文字を含むキーを数える

    README.md starter.php answer.php

サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。

完了にすると進捗に反映されます