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

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

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

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

Q&A

1回答

453閲覧

PHPの連想配列のループ処理

fd0517

総合スコア3

PHP

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

0グッド

0クリップ

投稿2021/06/15 01:25

編集2021/06/15 04:00

前提・実現したいこと

二つの配列の内容を比較し、同一である場合は名称を表示したい

問題点

配列p_arrayには[C2,B4]のような要素が入っています。
これを$searchResultという連想配列の['code']と比較し、
同じものがある場合、$searchResultの['name']を表示する処理を行いたいです。

$searchResultをループで回して、
そのあとp_arrayを二重ループにして比較できるかと思ったのですが、
連想配列のループ記述方法わかりません。
プログラム自体初心者なので全く頓珍漢なことをしているかもしれません。

該当のソースコード

php

1$i=0; 2 if (is_array($p_array)) { 3 foreach ($searchResultをループしたい) { 4          foreach ($p_array as $value) { 5 if ($value == $searchResult['code']) { 6 echo $searchResult["data"][$i]["name"]; 7 } 8 $i++; 9 } 10 }

補足情報(FW/ツールのバージョンなど)

var_export()の結果
p_array
array ( 0 => 'C2', 1 => 'C6', 2 => 'E2', 3 => 'G', 4 => 'H', 5 => 'I', )

$searchResult
array ( 'data' => array ( 0 => array ( 'code' => 'A', 'name' => '名前1', )
, 1 => array ( 'code' => 'B1', 'name' => '名前2', )
, 2 => array ( 'code' => 'B2', 'name' => '名前3', )
, 3 => array ( 'code' => 'B3', 'name' => '名前4', ),

これがB5~Z5まで続いています。(Aのみ特殊)

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/06/15 01:28

手書きではなく、var_export()の結果をそのまま提示してください。 コードも一部ではなく全体の流れがわかる程度に。
fd0517

2021/06/15 02:10 編集

p_array array ( 0 => 'C2', 1 => 'C6', 2 => 'E2', 3 => 'G', 4 => 'H', 5 => 'I', ) $searchResult array ( 'data' => array ( 0 => array ( 'code' => 'A', 'name' => '名前1', ) , 1 => array ( 'code' => 'B1', 'name' => '名前2', ) , 2 => array ( 'code' => 'B2', 'name' => '名前3', ) , 3 => array ( 'code' => 'B3', 'name' => '名前4', ),
m.ts10806

2021/06/15 02:08

$p_array じゃないんですか?
m.ts10806

2021/06/15 02:10

あと、その中身が正しいとしたら、どれもイコールは成立しないのでは。 また、コードも一部ではなく全体の流れがわかる程度に。
退会済みユーザー

退会済みユーザー

2021/06/15 02:12

foreachでas使わないの?
m.ts10806

2021/06/15 02:14

そういやそもそも構文エラーで動かないはずですね。コードが本当にこのままなら。 実際のコードコピペしてますか? 回答者には提示された内容が全てなので、正しく提示されてないとそこから突っ込まなければなりません。
yambejp

2021/06/15 02:44

print_r($p_array); print_r($searchResult); とかで中身を見ないことにはなんとも言えないですね・・・
fd0517

2021/06/15 04:55

var_export()の結果の結果を追記し、全体的に質問を修正しました。
m.ts10806

2021/06/15 04:59

幾度となく依頼してますが、コードも一部ではなく全体の流れがわかる程度に。
guest

回答1

0

先頭にi=0;と書いていますが、PHPではi定数です。変数の$iとは無関係です。

投稿2021/06/15 01:27

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fd0517

2021/06/15 02:01

$iの誤りでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問