PHP-100

PHPの変数、配列、制御構造、関数までを範囲とした問題集(全100問)です。以下の配分で問題集を作成しています。

  • Basic 1-20
  • Function 21 – 40
  • String 41 – 60
  • Array 61 – 80
  • File System 81 – 100

問題番号の横の[===] は5段階の難易度です。難しいものは後回しにして構いません。プログラミングの習い始めの頃は、同じ問題も繰り返し解いてみましょう。

ファイル名はno1.phpのように作成してください。

No.1 [=]

次の変数があります。

$count = 3;
$message = "Hello";

実行結果のとおり出力してください。

<実行結果>

Hello
Hello
Hello

<ヒント>

<?php
$count = 3;
$message = "Hello";

for ($i = ???; $i < ???; ???) {
  echo ??? . PHP_EOL;
}

No.2 [=]

次の変数があります。

$count = 3;
$message = "Hello";

実行結果のとおり出力してください。

<実行結果>

1:Hello
2:Hello
3:Hello

No.3 [=]

次の変数があります。

$apple = 100;
$number = 3;

実行結果のとおり出力してください。

<実行結果>

Total: 300

<ヒント>

<?php
$apple = 100;
$number = 3;

??? = ??? * ???;

echo "Total: " . ??? . PHP_EOL;

No.4 [=]

次の変数があります。

$apple = 100;
$number = 3;
$tax = 0.08;

実行結果のとおり出力してください。

<実行結果>

Total: 324

No.5 [=]

次の変数があります。

$apple = 100;
$appleNumber = 3;
$banana = 200;
$bananaNumber = 2;
$tax = 0.08;

実行結果のとおり出力してください。

<実行結果>

Total: 756

No.6 [=]

次の配列があります。

$fruits = ["Apple", "Banana", "Cherry"];

実行結果のとおり出力してください。

<実行結果>

Apple
Banana
Cherry

<ヒント>

<?php
$fruits = ["Apple", "Banana", "Cherry"];

for ($i = 0; $i < ???; $i++) {
  echo ??? . PHP_EOL;
}

No.7 [=]

次の配列があります。

$fruits = ["Apple", "Banana", "Cherry"];

実行結果のとおり出力してください。

<実行結果>

Cherry
Banana
Apple

No.8 [==]

次の配列があります。

$fruits = ["Apple", "Banana", "Cherry"];

実行結果のとおり出力してください。

<実行結果>

1:Apple
2:Banana
3:Cherry

No.9 [=]

次の配列があります。

$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];

実行結果のとおり出力してください。

<実行結果>

Count: 9

<ヒント>

<?php
$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];

// TODO

echo "Count:" . ??? . PHP_EOL;

No.10 [==]

次の配列があります。

$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];

実行結果のとおり出力してください。

<実行結果>

Min: 18

No.11 [==]

次の配列があります。

$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];

実行結果のとおり出力してください。

<実行結果>

Max: 32

No.12 [==]

次の配列があります。

$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];

実行結果のとおり出力してください。

<実行結果>

Sum: 225

No.13 [==]

次の配列があります。

$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];

実行結果のとおり出力してください。

<実行結果>

Mean: 25

No.14 [====]

次の配列があります。

$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];

実行結果のとおり出力してください。

<実行結果>

Asc: 18, 21, 24, 24, 24, 25, 28, 29, 32

No.15 [====]

次の配列があります。

$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];

実行結果のとおり出力してください。

<実行結果>

Desc: 32, 29, 28, 25, 24, 24, 24, 21, 18

No.16 [==]

次の配列があります。

$number = [1, 3, 5];

実行結果のとおり出力してください。

<実行結果>

*
***
*****

No.17 [===]

次の配列があります。

$number = [[2, 2], [2, 4], [4, 2]];

実行結果のとおり出力してください。

<実行結果>

**
**
-
****
****
-
**
**
**
**

No.18 [===]

次の配列があります。

$array = [[24, 21, 24], [18, 28, 32], [24, 25, 29]];

実行結果のとおり出力してください。

<実行結果>

Sum(rows): 69, 78, 78

No.19 [===]

次の配列があります。

$array = [[24, 21, 24], [18, 28, 32], [24, 25, 29]];

実行結果のとおり出力してください。

<実行結果>

Sum(cols): 66, 74, 85

No.20 [===]

次の配列があります。

$array = [[24, 21, 24], [18, 28, 32], [24, 25, 29]];

実行結果のとおり出力してください。

<実行結果>

Sum: 225

No.21 [=]

次の関数を定義します。

5行x5列の*マークを出力する関数(show_star)
・引数なし、戻り値なし

実行結果のとおり出力してください。

<実行結果>

*****
*****
*****
*****
*****

<ヒント>

<?php
function show_star() {
  // TODO
}

show_star();

No.22 [=]

次の関数を定義します。

指定された行数、列数分の*マークを出力する関数(show_star2)
・引数は$row、$colの2つ、戻り値なし
・引数に指定された個数分の*マークを表示する

実行結果のとおり出力してください。

<実行結果>

引数:$row=3, $col=4の場合

****
****
****

<ヒント>

<?php
function show_star2($row, $col) {
  // TODO
}

show_star2(3, 4);

No.23 [==]

次の関数を定義します。

指定された行数分の*マークを出力する関数(show_star3)
・引数は$row、戻り値なし
・引数に指定された行数分の*マークを表示する
・ただし1行目の*マークは1つ、2行目の*マークは2つのように表示する

実行結果のとおり出力してください。

<実行結果>

引数:$row=5の場合

*
**
***
****
*****

<ヒント>

<?php
function show_star3($row) {
  // TODO
}

show_star3(5);

No.24 [==]

次の関数を定義します。

指定された行数分の*マークを出力する関数(show_star4)
・引数は$row、戻り値なし
・引数に指定された行数分の*マークを表示する
・ただし1行目の*マークはrow個、2行目の*マークはrow - 1個というように表示する

実行結果のとおり出力してください。

<実行結果>

引数:$row=5の場合

*****
****
***
**
*

No.25 [==]

次の関数を定義します。

指定された行数分の*マークを出力する関数(show_star5)
・引数は$row、戻り値なし
・引数に指定された行数分の*マークを表示する
・ただし1行目の*マークは1個、2行目の*マークは2個というように表示する
 (行頭の半角スペースの出力を考えること)

実行結果のとおり出力してください。

<実行結果>

引数:$row=5の場合

    *
   **
  ***
 ****
*****

No.26 [==]

次の関数を定義します。

指定された行数分の*マークを出力する関数(show_star6)
・引数は$row、戻り値なし
・引数に指定された行数分の*マークを表示する
・ただし1行目の*マークは1個、2行目の*マークは3個というように表示する

実行結果のとおり出力してください。

<実行結果>

引数:$row=4の場合

   *
  ***
 *****
*******

No.27 [=]

次の関数を定義します。

引数の文字列にh1タグを修飾して出力する関数(print_h1)
・引数は$contents、戻り値なし

実行結果のとおり出力してください。

<実行結果>

引数:$contents=”Hello”の場合

<h1>Hello</h1>

<ヒント>

<?php
function print_h1($contents) {
  // TODO
}

print_h1("Hello");

No.28 [==]

次の関数を定義します。

引数の文字列配列にul、liタグを修飾して出力する関数(print_ul)
・引数は$items、戻り値なし

実行結果のとおり出力してください。

<実行結果>

引数:$items = [“apple”, “banana”, “cherry”]の場合

<ul>
<li>apple</li>
<li>banana</li>
<li>cherry</li>
</ul>

<ヒント>

<?php
function print_ul($items) {
  // TODO
}

$items = ["apple", "banana", "cherry"];
print_ul($items);

No.29 [===]

次の関数を定義します。

引数の文字列配列にol(ul)、liタグを修飾して出力する関数(print_list)
・引数は$items、$orderedの2つ、戻り値なし
 ・$itemsは文字列配列
 ・$orderedは論理値(true,false)

実行結果のとおり出力してください。

<実行結果>

引数:$items=[“apple”, “banana”, “cherry”], $ordered=falseの場合

<ul>
<li>apple</li>
<li>banana</li>
<li>cherry</li>
</ul>

<実行結果>

引数:$items=[“apple”, “banana”, “cherry”], $ordered=trueの場合

<ol>
<li>apple</li>
<li>banana</li>
<li>cherry</li>
</ol>

<ヒント>

<?php
function print_list($items, $ordered) {
  // TODO
}

$items = ["apple", "banana", "cherry"];
print_list($items, false);
// print_h1($items, true);

No.30 [===]

次の関数を定義します。

引数の文字列配列にtableタグを修飾して出力する関数(print_table)
・引数は$items、$with_headerの2つ、戻り値なし
 ・$itemsは文字列配列
 ・$with_headerは論理値(true,false)

実行結果のとおり出力してください。

<実行結果>

引数が以下の場合

$items=[
 ["ID", "NAME", "AGE"],
 ["1", "John", "20"],
 ["2", "Paul", "21"],
 ["3", "George", "22"]
];
$with_header=true;

次のように表示されること

<table>
<tr><th>ID</th><th>NAME</th><th>AGE</th></tr>
<tr><td>1</td><td>John</td><td>20</td></tr>
<tr><td>2</td><td>Paul</td><td>21</td></tr>
<tr><td>3</td><td>George</td><td>22</td></tr>
</table>

<実行結果>

引数が以下の場合

$items=[
 ["1", "John", "20"],
 ["2", "Paul", "21"],
 ["3", "George", "22"]
];
$with_header=false;

次のように表示されること

<table>
<tr><td>1</td><td>John</td><td>20</td></tr>
<tr><td>2</td><td>Paul</td><td>21</td></tr>
<tr><td>3</td><td>George</td><td>22</td></tr>
</table>

No.31 [=]

次の関数を定義します。

掛け算を計算する関数(multiply)
・引数は$x, $y の2つ、戻り値あり

実行結果のとおり出力してください。

<実行結果>

x=4, y=2: 8
x=9, y=2: 18
x=9, y=0: 0

<ヒント>

<?php
function multiply($x, $y)
{
  // TODO
}

$x = 4;
$y = 2;
echo "x=$x, y=$y: " . multiply($x, $y);
$x = 9;
$y = 2;
echo "x=$x, y=$y: " . multiply($x, $y);
$x = 9;
$y = 0;
echo "x=$x, y=$y: " . multiply($x, $y);

No.32 [==]

次の関数を定義します。

割り算を計算する関数(divide)
・引数は$x, $y の2つ、戻り値あり
・ただし、引数$yが0の場合、戻り値に0を返す

0による除算はエラーとなってしまいます。そのため、ここでは戻り値に0を返却するものとします。

実行結果のとおり出力してください。

<実行結果>

x=4, y=2: 2
x=8, y=4: 2
x=9, y=0: 0

No.33 [==]

次の関数を定義します。

三角形の面積を計算する関数(triangle)
・引数は$width, $height の2つ、戻り値あり
・引数$width、$heightのいずれかがマイナスの場合、戻り値に0を返す

実行結果のとおり出力してください。

<実行結果>

width=4, height=2: 4
width=8, height=4: 16
width=8, height=-1: 0

No.34 [==]

次の関数を定義します。

正方形の面積を計算する関数(regular_square)
・引数は$length1つ、戻り値あり
・引数$lengthがマイナスの場合、戻り値に0を返す

実行結果のとおり出力してください。

<実行結果>

length=4: 16
length=8: 64
length=-1: 0

No.35 [====]

次の関数を定義します。

引数で受け取った配列を昇順ソートする関数(my_sort_asc)
・引数は$array、戻り値あり

実行結果のとおり出力してください。

<実行結果>

引数:$array=[24, 21, 24, 18, 28, 32, 24, 25, 29] の場合

Asc: 18, 21, 24, 24, 24, 25, 28, 29, 32

<ヒント>

<?php
function my_sort_asc($array)
{
  // TODO
}

$ages = [24, 21, 24, 18, 28, 32, 24, 25, 29];
$sorted_ages = my_sort_asc($ages);
echo "ASC: " . implode(", ", $sorted_ages) . PHP_EOL;

No.36 [====]

次の関数を定義します。

引数で受け取った配列を降順ソートする関数(my_sort_desc)
・引数は$array、戻り値あり

実行結果のとおり出力してください。

<実行結果 array={24, 21, 24, 18, 28, 32, 24, 25, 29} の場合>

Desc: 32, 29, 28, 25, 24, 24, 24, 21, 18

No.37 [======]

次の関数を定義します。

引数で受け取った配列を降順ソートする関数(my_sort)
・引数は$array、$ascの2つ
・引数の$ascがtrueの場合、$array配列を昇順でソートする。
    $ascがfalseの場合、$array配列を降順でソートする。
    $ascが省略された場合は、$array配列を昇順でソートする。

実行結果のとおり出力してください。

<実行結果>

引数:$array=[24, 21, 24, 18, 28, 32, 24, 25, 29], $ascがtrue の場合

Asc: 18, 21, 24, 24, 24, 25, 28, 29, 32

<実行結果>

引数:$array={24, 21, 24, 18, 28, 32, 24, 25, 29} 、$ascがfalseの場合

Desc: 32, 29, 28, 25, 24, 24, 24, 21, 18

<実行結果>

引数:$array=[24, 21, 24, 18, 28, 32, 24, 25, 29], $ascの指定が省略された場合

Asc: 18, 21, 24, 24, 24, 25, 28, 29, 32

No.38 [==]

次の関数を定義します。

階乗を計算する関数(fraction)
・引数は$arg、戻り値あり
<階乗の考え方>
・引数$argが1の場合、戻り値に1を返す
・引数$argが2の場合、戻り値に2を返す
・引数$argが3の場合、戻り値に6を返す

実行結果のとおり出力してください。

<実行結果>

args=1: 1
args=2: 2
args=3: 6

<ヒント>

<?php
function fraction($arg)
{
  // TODO
}

$args = [1, 2, 3];
foreach ($args as $arg) {
  echo "args=$arg: " . fraction($arg) . PHP_EOL;
}

No.39 [===]

次の関数を定義します。

順列を計算する関数(permutation)
・引数は配列$args、戻り値あり
<順列の考え方>
・引数$argsが[5, 1]の場合、戻り値に5を返す
・引数$argsが[5, 2]の場合、戻り値に20を返す
・引数$argsが[5, 3]の場合、戻り値に60を返す

実行結果のとおり出力してください。

<実行結果>

args=[5,1]: 5
args=[5,2]: 20
args=[5,3]: 60

No.40 [====]

次の関数を定義します。

組み合わせを計算する関数(combination)
・引数は配列$args、戻り値あり
<組み合わせの考え方>
・引数$argsが[5, 1]の場合、戻り値に5を返す
・引数$argsが[5, 2]の場合、戻り値に10を返す
・引数$argsが[5, 3]の場合、戻り値に10を返す

実行結果のとおり出力してください。

<実行結果>

args=[5,1]: 5
args=[5,2]: 10
args=[5,3]: 10

No.41 [=]

次の変数があります。

$message = "Hello World";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

hello world

文字列を小文字に変換します。

No.42 [=]

次の変数があります。

$message = "Hello World";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

HELLO WORLD

文字列を大文字に変換します。

No.43 [==]

次の変数があります。

$message = "Hello World";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

hello

文字列を小文字に変換し、helloのみ出力します。

No.44 [=]

次の変数があります。

$message = "i have a pen.";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

I have a pen.

文字列の先頭文字だけ大文字に変換します。

No.45 [=]

次の変数があります。

$message = "apple banana cherry";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

Apple Banana Cherry

単語の先頭文字だけ大文字に変換します。

No.46 [=]

次の変数があります。

$message = "Thank you";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

 9

文字数を出力します。

No.47

次の変数があります。

$message = "apple banana cherry";

文字列関数を使って、実行結果のとおり出力してください。

<実行結果>

_pple b_n_n_ cherry

文字列に含まれる “a” を “_”に置き換えます。

No.48 [=]

次の変数があります。

$message = "123";

文字列関数を使って、実行結果のとおり出力してください。

<実行結果>

  123

5桁に満たない文字列の左側を半角スペース” “で埋めます。

No.49 [==]

次の変数があります。

$message = "123";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

$message = "12300";

5桁に満たない文字列の右側を”0″で埋めます。

No.50 [=]

次の変数があります。

$message = "Hello";

文字列関数を使って、実行結果のとおり出力してください。

<実行結果>

olleH

文字列を逆順表示します。

No.51 [=]

次の変数があります。

$message = "Hello";

文字列関数を使って、実行結果のとおり出力してください。

<実行結果>

HelloHelloHello

文字列を反復表示します。

No.52 [==]

次の変数があります。

$message = "Hello World";

文字列関数を使って、実行結果のとおり出力してください。

<実行結果>

8

文字列”r”が最初に現れる場所を見つけます。

No.53 [==]

次の変数があります。

$message = "Hello World";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

rld

文字列”r”が最初に現れる位置を見つけ、文字列の終端まで出力します。

No.54 [=]

次の変数があります。

$message = "apple banana cherry";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

apple
banana
cherry

配列に分割して繰り返し処理します。

No.55 [=]

次の変数があります。

$fruits = ["apple", ""banana", "cherry"];

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

apple banana cherry

配列要素を文字列に連結します。

No.56 [=]

次の変数があります。

$message = "     apple banana cherry     ";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

apple banana cherry

appleの前の空白スペース、cherryの後の空白スペースを排除します。

No.57 [=]

次の変数があります。

$money = 1000000;

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

1,000,000

数字を3桁ごとにカンマで区切って表示します。

No.58 [=]

次の変数があります。

$message = "<h1>Hello World</h1>";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

<h1>Hello World</h1>

HTMLタグを特殊文字に置き換えてください。

No.59 [=]

次の変数があります。

$message = "<h1>Hello World</h1>";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

Hello World

HTMLタグを排除してください。

No.60 [=]

次の変数があります。

$message = "apple\nbanana\ncherry";

文字列関数を使って実行結果のとおり出力してください。

<実行結果>

apple<br>
banana<br>
cherry

改行コードの前に<br>タグを挿入します。

No.61 [=]

次のコードがあります。

$array = ["one", "two", "three"];

$count = ???
echo $count;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

3

配列の要素数を出力します。

No.62 [=]

次のコードがあります。

$array = ["A", "B", "C", "D", "E"];

$shuffled_array = ???
echo implode("," , $shuffled_array);

配列関数を使って実行結果のとおり出力してください。

<実行結果>

D,E,B,A,C

配列の要素をシャッフルします。

実行する度に順序は異なる可能性があります。

No.63 [=]

次のコードがあります。

$array = ["A", "B", "C", "D", "E"];

$reversed_array = ???
echo implode("," , $reversed_array);

配列関数を使って実行結果のとおり出力してください。

<実行結果>

E,D,C,B,A

配列の要素を逆順にします。

No.64 [=]

次のコードがあります。

$array = ["A", "B", "C", "D", "E"];

$sliced_array = ???
echo implode("," , $reversed_array);

<実行結果>

C,D,E

配列の一部分を取得します。

No.65 [=]

次のコードがあります。

$array = ["A", "B", "A", "B", "C"];
$uniqued_array = ???
echo implode("," , $reversed_array);

配列関数を使って実行結果のとおり出力してください。

<実行結果>

A,B,C

配列の重複した要素を削除します。

No.66 [=]

次のコードがあります。

<?php
$array = ["A", "B", "C", "D", "E"];

$x = ???
echo $x . PHP_EOL;
echo implode(", ", $array) . PHP_EOL;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

A
B,C,D,E

配列の先頭から要素を一つ取り出します。

No.67 [=]

次のコードがあります。

<?php
$array1 = ["A", "B", "C", "D"];
$array2 = ["B", "C", "D"];

$diff = ???
echo implode(", ", $diff) . PHP_EOL;

配列関数を使って、実行結果のとおり出力してください。

<実行結果>

A

$array1と$array2の差分を求めます。

No.68 [=]

次のコードがあります。

<?php
$array = ["key1" => "val1", "key2" => "val2", "key3" => "val3"];

$flipped_array = ???
foreach ($flipped_array as $key => $value) {
  echo "$key:$value" . PHP_EOL;
}

配列関数を使って、実行結果のとおり出力してください。

<実行結果>

val1:key1
val2:key2
val3:key3

配列のキーと値を反転します。

No.69 [===]

次のコードがあります。

<?php
$array = [1, 2, 3, 4, 5];

function even($x) {
  ???
}

$filterd_array = ???
echo implode(",", $filterd_array) . PHP_EOL;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

2,4

偶数の要素のみフィルタリングします。

No.70 [===]

次のコードがあります。

<?php
$array = [1, 2, 3, 4, 5];

function triple($x) {
  ???
}

$mapped_array = ???
echo implode(",", $mapped_array) . PHP_EOL;

配列関数を使って、実行結果のとおり出力してください。

<実行結果>

3,6,9,12,15

配列の各要素を3倍にします。

No.71 [==]

次のコードがあります。

<?php
$array = [1, 2, 3, 4, 5];

while ($elem = ???) {
  echo $elem;
}

配列関数を使って、実行結果のとおり出力してください。

<実行結果>

54321

配列の末尾から要素を取り除きます。

No.72 [=]

次のコードがあります。

<?php
$array1 = ["A", "B", "C", "D", "E"];
$array2 = [0 => "X", 2 => "Y", 4 => "Z"];

$replaced_array = ???;
echo implode(",", $replaced_array) . PHP_EOL;

配列関数を使って、実行結果のとおり出力してください。

<実行結果>

X,B,Y,D,Z

配列の要素を置き換えます。

No.73 [==]

次のコードがあります。

<?php
$array = ["A", "B", "C"];

$padded_array = ???
echo implode(",", $padded_array) . PHP_EOL;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

A,B,C,X,X

配列の長さと値を指定して配列を埋めます。

No.74 [=]

次のコードがあります。

<?php
$target = "C";
$array = ["A", "B", "C", "D", "E"];

$key = ???
echo $key;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

2

指定した値について配列を検索し、見つかった場合に対応する最初の要素番号を返します。

No.75 [==]

次のコードがあります。

<?php
$array = ["A", "B", "C", "D", "E"];

$spliced_array = ???
echo implode(",", $spliced_array) . PHP_EOL;
echo implode(",", $array) . PHP_EOL;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

C,D
A,B,E

配列の一部を切り取ります。

No.76 [=]

次のコードがあります。

<?php
$filled_array = ???(0, 5, "A");

echo implode(",", $filled_array) . PHP_EOL;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

A,A,A,A,A

配列の要素を指定した値で埋めます。

No.77 [=]

次のコードがあります。

<?php
$array1 = ["key1" => "val1", "key2" => "val2"];
$array2 = ["key3" => "val3", "key4" => "val4"];

$merged_array = ???
foreach ($merged_array as $key => $value) {
  echo "$key:$value" . PHP_EOL;
}

配列関数を使って実行結果のとおり出力してください。

<実行結果>

key1:val1
key2:val2
key3:val3
key4:val4

2つの配列をマージします。

No.78 [=]

次のコードがあります。

<?php
$array = [1, 2, 3, 3];

$sum = ???
echo $sum;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

9

配列の要素の合計値を求めます。

No.79 [=]

次のコードがあります。

<?php
$array = [1, 2, 3, 4, 5];

$product = ???
echo $product;

配列関数を使って実行結果のとおり出力してください。

<実行結果>

120

配列の要素の積和を求めます。

No.80 [====]

次のコードがあります。

<?php
function my_sort($x, $y) {
  // TODO
}

$array = ["Array", "Bin", "C", "Do", "Exception"];

???
foreach ($array as $elem) {
  echo $elem . PHP_EOL;
}

配列関数を使って実行結果のとおり出力してください。

<実行結果>

C
Do
Bin
Array
Exception

配列の要素について、文字数の少ないもの順でソートします。

No.81 [=]

次のコードがあります。

<?php
$path = "C:/foo/bar/baz.php";

$file = ???
echo $file . PHP_EOL;

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

baz.php

パスに含まれるファイル名のみ出力します。

No.82 [=]

次のコードがあります。

<?php
$path = "C:/foo/bar/baz.php";

$dir = ???
echo $dir . PHP_EOL;

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

C:/foo/bar

パスに含まれるディレクトリ名のみ出力します。

No.83 [=]

次のコードがあります。

<?php
$path = "my.txt";

$touch_result = ???
var_dump($touch_result);

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(true)

カレントフォルダにmy.txtファイルが作成されていることを確認します。中身は空のファイルになります。

No.84 [=]

次のコードがあります。

<?php
$path = "my.txt";

$size = ???
echo $size . "bytes" . PHP_EOL;

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

0bytes

ファイルサイズを出力します。

No.85 [=]

次のコードがあります。

<?php
$path = "my.txt";

$time = ???
echo date("Y-m-d H:i:s", $time) . PHP_EOL;

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

2018-04-27 14:02:55

ファイルの更新日時が出力されていることを確認します。

No.86 [=]

次のコードがあります。

<?php
$path = date("YmdHis");

$mkdir_result = ???
var_dump($mkdir_result);

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(true)

カレントディレクトリに、ディレクトリ(現在の日時:20180427141041など)が作成されていることを確認します。

No.87 [=]

次のコードがあります。

<?php
$path = "my.txt";

$exist = ???
var_dump($exist);

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(true)

カレントディレクトリに my.txt が存在するか確認します。

No.88 [=]

次のコードがあります。

<?php
$source = "my.txt";
$dest = "my.txt.bk";

???

$exist = file_exists($dest);
var_dump($exist);

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(true)

カレントディレクトリに、my.txt.bk ファイルがコピーされていることを確認します。

No.89 [=]

次のコードがあります。

<?php
$old = "my.txt.bk";
$new = "my.txt.backup";

???

var_dump(file_exists($old));
var_dump(file_exists($new));

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(false)
bool(true)

カレントディレクトリ上で my.txt.bk が my.txt.backup にリネームされていることを確認します。

No.90 [=]

次のコードがあります。

<?php
$path = "my.txt.backup";

???

var_dump(file_exists($path));

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(true)

my.txt.backupが削除されていることを確認します。

No.91 [=]

次のコードがあります。

<?php
$path = "output.txt";
$message = "Hello";

$handle = fopen($path, "w");
???
fclose($handle);

var_dump(file_exists($path));

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(true)

カレントディレクトリに output.txt が作成されていることを確認します。またファイルの中にはHelloが書き込まれていることを確認します。

No.92 [=]

次のコードがあります。

<?php
$path = "output.txt";

$handle = fopen("output.txt", "r");
while($c = ???) {
    echo $c . PHP_EOL;
}
fclose($handle);

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

H
e
l
l
o

ファイルから1文字単位で読み込みます。

No.93 [==]

次のコードがあります。

<?php
$path = "output.txt";

$handle = fopen("output.txt", "r");
while($line = ???) {
    echo $line . PHP_EOL;
}
fclose($handle);

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

Hello

ファイルから行単位で読み込みます。

No.94 [==]

次のコードがあります。

<?php
$path = "fruits.txt";
$array = ["Apple", "Banana", "Cherry"];

foreach ($array as $elem) {
  ???
}
var_dump(file_exists($path));

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(true)

カレントディレクトリに fruits.txt が生成されていることを確認します。追記型で処理します。

No.95 [=]

次のコードがあります。

<?php
$path = "fruits.txt";

$contents = ???
echo $contents;

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

Apple
Banana
Cherry

ファイルの内容をすべて読み込みます。

No.96 [==]

次のコードがあります。

<?php
$path = "fruits.txt";

$lines = ???
foreach ($lines as $line) {
  echo $line;
}

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

AppleBananaCherry

ファイルの内容を配列にして読み込みます。行末の改行コードは無視します。

No.97 [==]

次のコードがあります。

<?php
$path = "list.csv";
$list = [
  ["A", "B", "C"],
  ["X", "Y", "Z"]
];

$handle = fopen($path, "w");
foreach ($list as $fields) {
  ???
}
fclose($handle);
var_dump(file_exists($path));

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

bool(true)

カレントフォルダに次のような list.csv が出力されていることを確認します。

A,B,C
X,Y,Z

No.98 [==]

次のコードがあります。

<?php
$path = "list.csv";

$handle = fopen($path, "r");
while ($fields = ???) {
  echo $fields[0] . $fields[1] . $fields[2] . PHP_EOL;
}
fclose($handle);

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

ABC
XYZ

CSVレコードを配列として読み込みます。

No.99 [=]

次のコードがあります。

<?php
$path = "list.csv";
???;

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

A,B,C
X,Y,Z

ファイルを読みこんで標準出力に出力します。

No.100 [===]

次のコードがあります。

<?php
$files = ["one.xml", "two.csv", "three.xml"];
foreach ($files as $file) {
  touch($file);
}

$xml_files = ???
foreach ($xml_files as $xml_file) {
  echo "File name : $xml_file" . PHP_EOL;
}

ファイルシステム関数を使って実行結果のとおり出力してください。

<実行結果>

File name : one.xml
File name : three.xml

カレントディレクトリ上で、拡張子が.xmlのファイル名の一覧を取得します。