質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

379閲覧

PHP5.4以前の多次元連想配列の書き方について

Kosuke

総合スコア1

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/05/17 17:21

はじめまして。新米エンジニアの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/ツールのバージョンなど)

初歩的なものかもしれませんが、かなりつまっておりまして、お助けください!
何卒、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/05/17 21:13

現状でまだたくさん[]が残ってますが、これは書き換えた後ですか? また、本当にここだけですか? 500エラーの原因は本当に多岐に渡るので、画面上にエラーを出さないようにしているのでしたら、エラーログから確認していく必要があります。
Kosuke

2022/05/18 00:55

ありがとうございます! おっしゃる通りエラーログは、出さない様にしていたのですが、デバッグするのであれば、一時的に出すことも必要ですね。他の方の回答で配列の記載に関しては解決したのですが、他の部分で解決できていないところもあるので、試してみます!ありがとうございます。
m.ts10806

2022/05/18 01:53 編集

画面表示しなくてもエラーログファイルには出てると思います。
Kosuke

2022/05/18 02:20

調べてみたのですが、残念ながらエラーログファイルは出力しない設定になっているようで、ありませんでした。(おそらく、PHPエラーが多すぎてはかないようにしてあるのではいかと💦) 追加のアドバイスまで頂き大変助かりました。
guest

回答2

0

var_exportで出力される文字列が古い配列の表示方法です

投稿2022/05/18 00:44

yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kosuke

2022/05/18 00:52

ありがとうございます!別の方の回答をみて、解決したのですが、こちらのマニュアルも合わせてみると、更に理解が深まります!今後、こちらのサイトの他の情報に関して活用させていただきます。
guest

0

ベストアンサー

[]の組み合わせを、array()に置き換えるだけですよ。
掲載されたコードにはまだ[]が含まれているので、置き換えてください徹底的に。

もしかして、こんな形かな?

php

1$data = array( 2 "mb_id" => $mb_id, 3 "apikey" => $apikey, 4 "data" => array( 5 array( 6 "OrderId" => "00001", 7 "deviceSkuId" => "1650420568080904", 8 "days" => "1", 9 "email" => "test@mail.com" 10 ), 11 array( 12 "OrderId" => "00002", 13 "deviceSkuId" => "1650420606732909", 14 "days" => "1", 15 "email" => "test@mail.com" 16 ), 17 array( 18 "OrderId" => "00003", 19 "deviceSkuId" => "1650420606727908", 20 "days" => "1", 21 "email" => "test@mail.com" 22 ) 23 ) 24);

投稿2022/05/18 00:00

編集2022/05/18 00:10
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kosuke

2022/05/18 00:49

ありがとうございます!コードまで記載していただきありがとうございました。回答をいただくと、シンプルな話だったんだなと思うのですが、それまでが、こんがらがってしまっていたので、とても助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問