関数 / ch06 — 配列を引数に取る / 配列を返す / 演習 03

📝 ドリル 03 — 配列から正の数だけ抽出する

問題

配列 $arr を引数に取り、0 より大きい要素だけを集めた 新しい配列return で返す関数 positives を定義してください。

  • 引数 $arr の型は array
  • 戻り値の型は array
  • 0 は正の数に 含めない (> 0 で判定)

定義した後、positives([-3, -1, 0, 2, -5, 4, 7]) の戻り値を 1 要素 1 行で出力してください。

期待される出力:

2
4
7

採点

php scripts/grade.php v2/topics/07-function/ch06-array-arg/drill/03-filter-positive/

ヒント

  • function positives(array $arr): array { ... }
  • 中で $result = []; を用意し foreach ($arr as $v) { if ($v > 0) { $result[] = $v; } }
  • 最後に return $result;
  • 呼び出し側で foreach (positives([...]) as $v) { echo $v . "\n"; }

テストケース

期待される出力

2
4
7

📄 starter.php(雛形)

このコードから書き始めてください。

<?php

// TODO: positives(array $arr): array を定義し、正の数だけを 1 行ずつ出力する
// ヒント:
//   function positives(array $arr): array {
//       $result = [];
//       foreach ($arr as $v) {
//           if ($v > 0) {
//               $result[] = $v;
//           }
//       }
//       return $result;
//   }
//   foreach (positives([-3, -1, 0, 2, -5, 4, 7]) as $v) {
//       echo $v . "\n";
//   }
✅ 解答例を見る(自分で解いてから)
<?php

function positives(array $arr): array {
    $result = [];
    foreach ($arr as $v) {
        if ($v > 0) {
            $result[] = $v;
        }
    }
    return $result;
}

foreach (positives([-3, -1, 0, 2, -5, 4, 7]) as $v) {
    echo $v . "\n";
}