0

次のように、JSON でエンコードされた配列が正常に入力されました。

$profanityText = json_encode($pds->fetchAll(PDO::FETCH_ASSOC));

後でこのデータをループしたいので、次のことを行います。

    $profanityTextArray = json_decode($profanityText);
    foreach ($profanityTextArray as $key => $jsons) {
      print_r($jsons);
    }

print_r($jsons) を使用すると、次の出力が得られます。

stdClass Object
(
     [apple] => yes
     [peach] => yes2
     [banana] => no
)
(
     [apple] => yes
     [peach] => yes2
     [banana] => no
)

これでもいいです。問題は、foreach ループ中に個々の要素にアクセスする方法がわからないことです。例: 必要な意思決定を行うために、リンゴとバナナの個体にアクセスできるようにしたいと考えています。

各行の print_r ではなく、要素に個別にアクセスするにはどうすればよいですか?

4

2 に答える 2

2

マニュアルページは常に役に立ちます:

$profanityTextArray = json_decode($profanityText, TRUE);
foreach ($profanityTextArray as $row) {
    echo $row['apple'];
}

しかし、JSON をエンコード/デコードする理由は何ですか? fetchAll の結果はもう使えないのですか?

$profanityTextArray = $pds->fetchAll(PDO::FETCH_ASSOC);

そして、この配列を通常の方法で繰り返しますか?

ところで、あなたの質問は PDO とは何の関係もありません。
PDO から通常の配列があり、そのソースは問題ではありません。

于 2013-02-26T09:46:24.787 に答える
1

これを試して :

foreach ($profanityTextArray as $key => $jsons) {
  echo $jsons->apple;
  echo $jsons->peach;
  echo $jsons->banana;
}
于 2013-02-26T09:45:37.553 に答える