0

オブジェクトの小さな配列に解析したいjson文字列があります。そのためにデコーダーを使用していますが、役に立たないのはなぜですか?

変数を $cleanforcharacters として定義しました

$cleanforcharacters = preg_replace('/["{mtwrdayfsasusseto}"]_/', '', $found['newdiscounthours']);

これは私の出力です

discount_org: "{"day":"8:00","time":"12:00","discount":"10","day":"8:00","time":"12:00","discount":"10"}"

これは望ましい出力です (オブジェクトの配列)

discount_org: [
{
day: 0,
time: 8,
discount: 10
},
{
day: 0,
time: 14,
discount: 10
},

これが私が試した方法です

$arrayOfEmails = json_decode($cleanforcharacters);

そして、これは私が今得ているものです

discount_org: {
day: "20",
time: "12:00",
discount: "20"
}

残りも出てこない

4

1 に答える 1

0

これは、オブジェクトとして宣言し、キーが新しい値として設定されるのではなく、値をオーバーライドしているためです:-

あなたが与えた:-

discount_org: "{"day":"8:00","time":"12:00","discount":"10","day":"8:00","time":"12:00","discount":"10"}"

そのはず:-

discount_org: "[{"day":"8:00","time":"12:00","discount":"10"},{"day":"8:00","time":"12:00","discount":"10"}]"

次に使用します:-

$arrayOfEmails = json_decode($cleanforcharacters,true);

これにより、正しい結果が得られます。

于 2013-07-19T07:17:04.857 に答える