0

編集: 2D 配列を生成し、json 文字列として db に格納しています。配列内の何かを変更する必要がある場合は、json 文字列を取得して次のようにデコードします。

$myarray = (array)json_decode($jsonString);

配列のダンプは次のとおりです

ここに画像の説明を入力

$index = 2;

$myarray[$index]のようにインデックス '2' のオブジェクトにアクセスしたいときnull。私が間違っていることを教えてください。

4

2 に答える 2

2

あなたのコメントでは、この「配列」は 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がそう言ったので、うまくいきませんでした。

于 2013-01-17T15:35:16.063 に答える
0

試してみてください

$index = '2';

配列を連想として定義したと思います。

于 2013-01-17T15:14:55.387 に答える