こんにちは。PHP技術者認定機構 CTOの古庄道明です。
今日もPHP8初級試験の模擬問題と解説を紹介します。
以下を解いて出題のイメージと知識を補っていただけると幸いです。
問題
次の実行結果を得たい場合、コードの【A】と【B】に入る組み合わせとして正しいものはどれか。
[ 実行結果 ]snowdrop, marigold
[ コード ]
$flowers = array(
array('rose', 'hibiscus', 'tulip'),
array('snowdrop', 'lily', 'gardenia'),
array('lavender', 'gentian', 'pansy'),
array('dandelion', 'sun flower', 'marigold'),
);
print 【A】. ', ' .【B】;
選択肢
選択肢1
【A】$flowers[1][1]
【B】$flowers[4][3]
選択肢2
【A】$flowers[1][1]
【B】$flowers[3][2]
選択肢3
【A】$flowers[1][0]
【B】$flowers[3][2]
選択肢4
【A】$flowers[1][0]
【B】$flowers[3][3]
選択肢5
【A】$flowers[2][1]
【B】$flowers[4][3]
回答と解説
問題は「配列について」です。
https://www.php.net/manual/ja/language.types.array.php
に一通り記載があるので、確認をしておくとよいでしょう。
今回の設問は、一般に「二次元配列」と呼ばれる、配列の要素として別の配列を持つ構造(配列の配列)についてです。
今回のコードのように、キーを省略して配列を作成した場合、省略された各要素には0から始まる整数キーが順番に割り当てられます。
そのため、最初の要素には [0]、次の要素には [1] を指定してアクセスできます。
$flowers[0]でアクセスすると、array('rose', 'hibiscus', 'tulip')を得ることができます。
また、この配列の最初の要素である 'rose' は、$flowers[0][0]でアクセスすることができます。
次の要素 'hibiscus' は、$flowers[0][1]でアクセスすることができます。
同じように、$flowers[1]でアクセスするとarray('snowdrop', 'lily', 'gardenia')が得られ、'lily'は、$flowers[1][1]で、'gardenia' は$flowers[1][2]で得られます。
設問の実行結果はsnowdrop, marigoldでした。
このうち、snowdrop は、$flowers[1]で得られるarray('snowdrop', 'lily', 'gardenia')の整数キーが0の要素であることから$flowers[1][0]で得られることがわかります。
また、marigold は$flowers[3]で得られるarray('dandelion', 'sun flower', 'marigold')の整数キーが2の要素であることから$flowers[3][2]で得られることがわかります。
従って、【A】は$flowers[1][0]、【B】は$flowers[3][2]の選択肢を選ぶのが正しく、これに合致するのは選択肢3となります。
正解は選択肢3です。
PHP8初級試験と公式問題集に興味がある方は、以下のページをご覧のうえ、この機会に是非受験ください。
PHP8初級試験
https://www.phpexam.jp/summary/novice8
公式問題集:PHP8技術者認定初級試験公式問題集A
Kindle版 https://amzn.asia/d/1bS88y9
ペーパーバック版 https://amzn.asia/d/3P3Izeu
また、試験対策セミナーは毎月開催しています。興味がある方は以下のページをご覧いただき是非セミナーにもご参加ください。(フォローいただけるとセミナーのご案内が届くようになります)
PHP技術者認定機構の公式Peatixグループ
https://peatix.com/group/43424
www.phpexam.jp

