採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

array_keys / array_values

テクノロジ系 / array-assoc (連想配列・foreach・ソート)

array_keys / array_values

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 で要素数を測れる

→ ドリルへ

考えてみよう

既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。

ドリル 01 — array_keys でキー一覧

問題

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

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

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

期待される出力:

math
english
science

採点

php scripts/grade.php topics/array-assoc/ch05-array-keys-values/drill/01-list-keys/

ヒント

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

ドリル 02 — array_values で値一覧

問題

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

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

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

期待される出力:

80
70
90

採点

php scripts/grade.php topics/array-assoc/ch05-array-keys-values/drill/02-list-values/

ヒント

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

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

問題

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

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

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

期待される出力:

4

採点

php scripts/grade.php topics/array-assoc/ch05-array-keys-values/drill/03-key-count/

ヒント

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