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

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

新規登録して質問してみよう
ただいま回答率
85.50%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

Q&A

解決済

1回答

452閲覧

php 多重配列から特定の値を取り出したい

yoheiiii

総合スコア86

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

0グッド

0クリップ

投稿2022/11/09 02:06

$allに下記が入っています。

array(93) { [0]=> array(28) { [0]=> array(2) { ["Point"]=> string(1) "1" ["CpId"]=> string(1) "1" } [1]=> array(2) { ["Point"]=> string(2) "-1" ["CpId"]=> string(1) "2" } [2]=> array(2) { ["Point"]=> string(3) "-20" ["CpId"]=> string(2) "23" } [3]=> array(2) { ["Point"]=> string(3) "-10" ["CpId"]=> string(2) "24" } [4]=> array(2) { ["Point"]=> string(4) "-300" ["CpId"]=> string(2) "25" } [5]=> array(2) { ["Point"]=> string(3) "-30" ["CpId"]=> string(2) "26" } [6]=> array(2) { ["Point"]=> string(1) "0" ["CpId"]=> string(2) "27" } [7]=> array(2) { ["Point"]=> string(3) "100" ["CpId"]=> string(2) "28" } [8]=> array(2) { ["Point"]=> string(1) "0" ["CpId"]=> string(2) "29" } [9]=> array(2) { ["Point"]=> string(3) "-20" ["CpId"]=> string(3) "105" } [10]=> array(2) { ["Point"]=> string(1) "0" ["CpId"]=> string(3) "106" } [11]=> array(2) { ["Point"]=> string(4) "1100" ["CpId"]=> string(3) "107" } [12]=> array(2) { ["Point"]=> string(3) "100" ["CpId"]=> string(3) "108" } [13]=> array(2) { ["Point"]=> string(4) "-100" ["CpId"]=> string(3) "109" } [14]=> array(2) { ["Point"]=> string(3) "999" ["CpId"]=> string(3) "201" } [15]=> array(2) { ["Point"]=> string(1) "1" ["CpId"]=> string(3) "202" } [16]=> array(2) { ["Point"]=> string(1) "1" ["CpId"]=> string(3) "203" } [17]=> array(2) { ["Point"]=> string(1) "0" ["CpId"]=> string(3) "204" } [18]=> array(2) { ["Point"]=> string(1) "0" ["CpId"]=> string(3) "205" } [19]=> array(2) { ["Point"]=> string(1) "0" ["CpId"]=> string(3) "206" } [20]=> array(2) { ["Point"]=> string(2) "-5" ["CpId"]=> string(3) "301" } [21]=> array(2) { ["Point"]=> string(5) "-7000" ["CpId"]=> string(3) "302" } [22]=> array(2) { ["Point"]=> string(5) "-3000" ["CpId"]=> string(3) "303" } [23]=> array(2) { ["Point"]=> string(5) "-5000" ["CpId"]=> string(3) "304" } [24]=> array(2) { ["Point"]=> NULL ["CpId"]=> string(3) "401" } [25]=> array(2) { ["Point"]=> NULL ["CpId"]=> string(3) "402" } [26]=> array(2) { ["Point"]=> NULL ["CpId"]=> string(3) "403" } [27]=> array(2) { ["Point"]=> NULL ["CpId"]=> string(3) "501" } }・・・・・・・・・

CpIdが105のPointの値を取得したいです。
やったこと

foreach($all as $val){ if($val['CpId'] == "105"){ $point = $val['Point']; }

結果はNULLです。
ご教授お願い致します。

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

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

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

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

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

yambejp

2022/11/09 03:19 編集

サンプルデータがきちんと閉じてないので検証ができません きちんと参照できるデータを提示してください var_exportなどで出力されるとよいでしょう
tanat

2022/11/09 03:19

> $allに下記が入っています。 の部分に、var_export($all)の結果を併記すると、回答者が環境を再現出来るので回答を得やすくなりますよ
yoheiiii

2022/11/09 07:26

ご教授ありがとうございます。 次回以降データ提示のやり方を参考にさせて頂きます。
guest

回答1

0

ベストアンサー

$allの中に入っている配列は

php

1array(93) { [0] => array(28){ [0] => array(2)...

上記のように3重の配列になっていますので、CpIdをキーにpointを取り出すためにはforeachを二重に行う必要があると考えられます。

提示されたコードですとarray(93)に対してのみforeachがかけられているので、そのなかのインデックスをキーとしているarray(28)の中にCpIdというキーが見つからずNULLが返ってきてしまっています。

サンプル

php

1foreach($all as $val){ 2 foreach($val as $elm){ 3 if($elm['CpId'] == "105"){ 4  $point = $elm['Point']; 5 } 6 }  7} 8 9echo $point;

投稿2022/11/09 03:37

編集2022/11/09 03:41
ryu_wtd.

総合スコア29

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

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

yoheiiii

2022/11/09 07:25

ご教授ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問