はじめまして。新米エンジニアのKOSUKEと申します。
前提
PHPの多次元連想配列について質問させてください。
会社でAPIの導入を任されたのですが、APIの供給元から渡されたサンプルプログラムでは動作できずに困っております。
使っているサーバのバージョンが、PHP 5.3.3の環境になっており、
渡されたサンプルプログラムが動作しませんでした。(PHP7のサーバでは動きました。)
実現したいこと
PHP5.3.3の環境でも動作するようにしたい
発生している問題・エラーメッセージ
このページは動作していませんwww.xxxxx.jp では現在このリクエストを処理できません。 HTTP ERROR 500
該当のソースコード
$data = array( "mb_id"=>$mb_id, "apikey"=>$apikey, "data"=>array([ "OrderId" =>"00001", "deviceSkuId" =>"1650420568080904", "days" =>"1", "email" =>"test@mail.com" ], [ "OrderId" =>"00002", "deviceSkuId" =>"1650420606732909", "days" =>"1", "email" =>"test@mail.com" ], [ "OrderId" =>"00003", "deviceSkuId" =>"1650420606727908", "days" =>"1", "email" =>"test@mail.com" ]) );
試したこと
インターネットで調べたところ、配列の書き方である[]は5.4以降の書き方とのことで、arrayに書き換えることによって、動作するはずなのですが、多次元の書き方だからか色々試しても動作をせず、途方に暮れてしまいました。。見落としや別の問題なのかもしれませんが、PHP5.3.3で動作するようにするにはどのように書き換えたらよいかご助言いただけないでしょうか?
補足情報(FW/ツールのバージョンなど)
初歩的なものかもしれませんが、かなりつまっておりまして、お助けください!
何卒、よろしくお願いいたします。
現状でまだたくさん[]が残ってますが、これは書き換えた後ですか?
また、本当にここだけですか?
500エラーの原因は本当に多岐に渡るので、画面上にエラーを出さないようにしているのでしたら、エラーログから確認していく必要があります。
ありがとうございます!
おっしゃる通りエラーログは、出さない様にしていたのですが、デバッグするのであれば、一時的に出すことも必要ですね。他の方の回答で配列の記載に関しては解決したのですが、他の部分で解決できていないところもあるので、試してみます!ありがとうございます。
画面表示しなくてもエラーログファイルには出てると思います。
調べてみたのですが、残念ながらエラーログファイルは出力しない設定になっているようで、ありませんでした。(おそらく、PHPエラーが多すぎてはかないようにしてあるのではいかと💦)
追加のアドバイスまで頂き大変助かりました。
回答2件
あなたの回答
tips
プレビュー