関数 / 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";
}