過去問題セットの方はコードを公開しても大丈夫とのことなので。
正解率が高い問題ですが、非常に苦労しました。
流れがそのまま出ているプロトタイプを残してあります。
いつも通り配列に入れていくと、後の「一致項目があるかどうか」のループで
エラーがでまくりました。2時間ぐらい悩んだと思う。
回避するために、「常に配列の一番最初に挿入する」「forを$j=1からまわす」「連番じゃなくなった配列を整える」の3手順が必要でしたが、
みなさんよくこの時間で解けるなあと思います。
もっと賢くて楽な方法があるのかもしれないですね・・・。
さておき。

プロトタイプ(自分用の覚え書きでぐちゃぐちゃしているので、後述のできあがりをご覧ください。)
<?php
// 自分の得意な言語で
// Let's チャレンジ!!
$num = trim(fgets(STDIN));
$daburi = false;//reset
$search = array();
for ($i = 0; $i < $num; $i++) {
echo("------------i".$i."\n");
$str = trim(fgets(STDIN));
echo("strは".$str."\n");
array_unshift($search, $str);//常に配列の最前列に挿入
print_r($search);
$con = count($search);
echo("conは".$con."\n");
//過去の履歴と一致があるか調べる
for ($j = 1; $j < $con; $j++) {
if($search[$j] == $str){
echo("一致項目あり"."\n");
$daburi = true;
$daburi_num = $j;
}
}
//一致項目があれば
if($daburi == true){
unset($search[$daburi_num]);
$search = array_values($search);//配列を整える
$daburi = false;
}
}
echo("------------final"."\n");
print_r($search);
echo("\n");//この行が無視されている
foreach ($search as $key => $value){
echo($value."\n");
}
?>
出力結果
------------i0
strはbook
Array
(
[0] => book
)
conは1
------------i1
strはcandy
Array
(
[0] => candy
[1] => book
)
conは2
------------i2
strはapple
Array
(
[0] => apple
[1] => candy
[2] => book
)
conは3
------------i3
strはbook
Array
(
[0] => book
[1] => apple
[2] => candy
[3] => book
)
conは4
一致項目あり
------------i4
strはcandy
Array
(
[0] => candy
[1] => book
[2] => apple
[3] => candy
)
conは4
一致項目あり
------------final
Array
(
[0] => candy
[1] => book
[2] => apple
)
candy
book
apple
(いつもこんな風に流れを追っています。
皆さんはどうしているんだろう)

できあがり
<?php
// 自分の得意な言語で
// Let's チャレンジ!!
$num = trim(fgets(STDIN));
$daburi = false;//reset
$search = array();
for ($i = 0; $i < $num; $i++) {
$str = trim(fgets(STDIN));
array_unshift($search, $str);//常に配列の最前列に挿入
$con = count($search);
//過去の履歴と一致があるか調べる
for ($j = 1; $j < $con; $j++) {
if($search[$j] == $str){
//echo("一致項目あり"."\n");
$daburi = true;
$daburi_num = $j;
}
}
//一致項目があれば
if($daburi == true){
unset($search[$daburi_num]);//削除
$search = array_values($search);//配列を整える
$daburi = false;
}
}
//print_r($search);
//echo("\n");//この行が無視されている
//出力
foreach ($search as $key => $value){
echo($value."\n");
}
?>

ところでこの過去問のphp画面でだけ、
echo(“\n”);
が無視されるようです。非常に困りました。
直接は関係ないけど視覚的に出力テストのときにごちゃごちゃで、脳が混乱して大変でした。
paiza スキルチェック過去問題セット(php)
https://paiza.jp/works/mondai/skillcheck_archive/problem_index?language_uid=php
array_unshift — 一つ以上の要素を配列の最初に加える
https://www.php.net/manual/ja/function.array-unshift.php
配列の要素を削除する
https://uxmilk.jp/8884
いつもの!
1+