• ベストアンサー

配列の中身が表示されない

<?php $test = トマトkeyニンジンkeyピーマンkey; $test = explode("key",$test); $test = array_reverse($test); echo $test[0]; echo $test[1]; echo $test[2]; ?> 結果 ピーマンニンジン $test[2]のトマトが表示されないのですが、 どこに間違いがありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

array_reverse前の配列の状況は、  array("トマト","ニンジン","ピーマン","") となります。 配列の値は全部で4つあり、配列の最後の値は、空になっています。 これをarray_reverseすると  array("","ピーマン","ニンジン","トマト") となるため、「トマト」を得るには、test[3]が必要になります。 空値が必要なければ、セパレートなる最後のkeyが余分です。 と、いろいろ書きましたが、var_dumpなど使えば一目瞭然です。 array云々の前に、まずはデバッグの方法を先に覚えるほうがいいですね。 $test = トマトkeyニンジンkeyピーマンkey; $test = explode("key",$test); $test = array_reverse($test); var_dump($test);

sasaki027
質問者

お礼

var_dump関数は知らなかったので勉強になりました。 回答ありがとうございます。

その他の回答 (1)

回答No.1

$test = トマトkeyニンジンkeyピーマンkey; の最後のkeyが不要。 $test = トマトkeyニンジンkeyピーマン; にする。 最後に余計なkeyがあるために、 $test = explode("key",$test); のところで、 $test[0] = "トマト" $test[1] = "ニンジン" $test[2] = "ピーマン" $test[3] = "" という配列になっていて、 array_reverseすると、 $test[0] = "" $test[1] = "ピーマン" $test[2] = "ニンジン" $test[3] = "トマト" となるので。

sasaki027
質問者

お礼

理解しました。 わかりやすい回答ありがとうございます。

関連するQ&A

専門家に質問してみよう