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

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

ただいまの
回答率

90.47%

  • PHP

    20843questions

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

  • JSON

    1202questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

  • foreach

    70questions

    foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

Foreachが最初の1回のみしか動かない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 266

Json -> Arrayに変換した配列をforeachで回す動作を書きました。
しかし、json内にはきちんと複数あるにも関わらずforeach内では配列内の1番目のみしか回りません。

どこを修正すれば治りますか?

/// ユーザーからjsonが送られてくる。
$json = file_get_contents('php://input');
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr  = json_decode($json,true);

foreach ($arr as $i) {

    echo $i[0];/// 結果が0しか出て来ず、残りの1,2が出て来ない。

}
/*送信内容*/
[
  [
    0
  ],
  [
    1
  ],
  [
    2
  ]
]
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • asahina1979

    2018/05/24 19:15

    うそん(uson)だからでしょうね

    キャンセル

  • bilieikbilibili

    2018/05/24 19:28

    修正しました。USONが口から出てきました。

    キャンセル

回答 1

checkベストアンサー

+1

$jsonが正しく入力されていれば取れるはずですが・・・

$json ="[[0],[1],[2]]";
$arr  = json_decode($json,true);
foreach ($arr as $i) {
  echo $i[0];
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/24 19:27

    回答ありがとうございます。
    せっかく回答いただいていたのですが、原因が全く違うところにありました。

    このコードはもう少し詳しく書くとforeach内にfunctionがそのまま入っていたのです。
    つまり複数の同じfuncを生成していたことによるエラーでした。

    しかし、回答者さんが間違っていないことを再確認してくれたので正しいコードとしてBAしました。

    キャンセル

関連した質問

  • 解決済

    PHPを用いた記号の入力制限

    PHPで入力された記号を受け取り、キーコードに変換するコードを作成しています。 変換後にjsで実際の入力制限をかけるのですが、どうにも冗長なコードになってしまっています。 何か

  • 解決済

    多次元配列の組み替え(基礎的な質問ですみませんが)

    以下のような多次元配列になっている場合に、単純な連想配列に変換することは可能でしょうか。 一方で、このような多次元配列に対してforeachでループ処理させることは可能なんでしょ

  • 解決済

    PHP7系で配列の添え字の順番は保証されますか?

    PHP7系において、配列をforeachで回したとき、キー(添え字)の順番は若い数字から順に処理されることが保証されていますでしょうか? 具体的には、 $arr[9]

  • 解決済

    PHP 配列 結合

    テストデータ $test[] = ['1111', '1001']; $test[] = ['1111', '2001']; $test[] = ['1111', '3001']

  • 受付中

    JSON・PHPが文字化けもしくは何も表示されない

    SJISのJSONをechoで書き出したとき、文字化けもしくは、何も表示されなくなってしまいます。 (現在のコードは何も表示されてない) mb_convert_encoding

  • 解決済

    【PHP】.jsonデータの読み込み→出力方法

    下記のようなJSONがサーバーのディレクトリに置いてあるとします。 [ {"ID":"001","Name":"大阪","Description":"nothing"

  • 解決済

    phpでjsonデータを取得する

    phpでjsonデータを取得したいです。 [{"code1":"001","name1":"テスト"}] phpで以下のように書いてみました。 isset($ret[]['

  • 受付中

    jsonデータをforeachで読みたい

    予定を表示するカレンダーをつくっているのですが、予定の部分をjsonから読み取る仕様にしたいと思っています。 下記jsonです。 {"res":

同じタグがついた質問を見る

  • PHP

    20843questions

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

  • JSON

    1202questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

  • foreach

    70questions

    foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。