編集: 2D 配列を生成し、json 文字列として db に格納しています。配列内の何かを変更する必要がある場合は、json 文字列を取得して次のようにデコードします。
$myarray = (array)json_decode($jsonString);
配列のダンプは次のとおりです
$index = 2;
$myarray[$index]
のようにインデックス '2' のオブジェクトにアクセスしたいときnull
。私が間違っていることを教えてください。
あなたのコメントでは、この「配列」は JSON からデコードされたと言っていました。を使用する場合は、第 2 パラメータとしてjson_decode
送信します。true
これにより、デコード時にオブジェクトではなく配列を作成するように指示されます。
->
の代わりに使用してアクセスするオブジェクトとして配列がデコードされているため、問題が発生しています[]
。
$newArray = json_decode($jsonString, true);
更新:あなたがやろうとしてい(array)json_decode($jsonString)
たことはうまくいきませんでした。これは、型キャストに関しては PHP がばかげているためです。
PHPドキュメントからの引用は次のとおりです。
オブジェクトが配列に変換された場合、結果は要素がオブジェクトのプロパティである配列になります。キーはメンバー変数名ですが、いくつかの注目すべき例外があります。整数プロパティにはアクセスできません。プライベート変数には、変数名の前にクラス名が追加されています。保護された変数には、変数名の前に「*」が付加されます。これらの先頭に追加された値には、両側に null バイトがあります。これにより、予期しない動作が発生する可能性があります。
ソース: http://php.net/manual/en/language.types.array.php#language.types.array.casting
PHPがそう言ったので、うまくいきませんでした。
試してみてください
$index = '2';
配列を連想として定義したと思います。