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

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

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

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

多次元配列

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

788閲覧

Laravel 多次元配列

dato

総合スコア64

foreach

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

多次元配列

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2019/10/06 06:19

状況

array:2 [▼
0 => array:6 [▼
0 => "1"
1 => "A"
2 => "2000"
3 => "1"
4 => "t-shirt.jpeg"
5 => "AA"
]
1 => array:6 [▼
0 => "3"
1 => "B"
2 => "3000"
3 => "1"
4 => "tapestry.png"
5 => "BB"
]
]
このような配列があり、Viewで、
@foreach($products as $key)
@foreach($key as $product)
{{$product}}
@endforeach
@endforeach
とやることで上の配列を順番にとりだすことができました。

###発生している問題

そこで例えば、
0=>2=>2000
だけを取り出したくて
{{$product[2]}} としても取り出せないのですが、どのような方法であれば取り出すことができるのでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

$productは配列じゃないんで、$keyの配列要素番号を指定してあげればいけるんじゃないですかね。

php

1@foreach($products as $key) 2{{$key[2]}} 3@endforeach

投稿2019/10/06 06:30

zushi0905

総合スコア683

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

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

dato

2019/10/06 06:42

回答ありがとうございます。 ためしたところ 0=>2=>2000 と 1=>2=>3000 の二つがでてきてしまいます。。
zushi0905

2019/10/06 06:54

私がdatoさんのやりたいことが理解できていないかもしれないです。各配列の同じ要素に対して処理を行いたいわけではないんですか? なんの意味があるかは分かりませんが、2000という値をただ配列から取り出したいだけなら、for文は必要なく、$products[0][2] で取り出せます。
dato

2019/10/06 07:19

失礼しました、、状況をくわしく説明させていただきますと、ただいまECサイトを作成しており、 上記の配列はカートの中身であるため、いくつカートに商品が入っているのかは把握できず、$products[0]のようにkeyを指定することができないです。 0から5までが1つの商品に関する情報でありまして、4つめが画像情報でして、 <img src="{{asset('/img/'.$product[4].'')}}"> のようにしたいです。 当初のイメージでは、 {{$product[0]}} {{$product[1]}} {{$product[2]}} {{$product[3]}} <img src="{{asset('/img/'.$product[4].'')}}"> {{$product[5]}} というように表示させたかったわけです。
zushi0905

2019/10/06 07:42

なぜカート内の商品をオブジェクトとして扱っていないのかは疑問ですが、imgが配列の4番目と決まっているならば、$key[4]で商品分ループで回せばいいです。 下記のこれは今回の回答を見ればわかると思います。 @foreach($products as $key) <img src="{{asset('/img/'.$key[4]'')}}"> @endfor
mikkame

2019/10/06 07:46

この回答の内容で上記は解決できるように見える
dato

2019/10/06 07:57

たしかに望んでいた形になりました! とりあえず簡易的なものをつくる練習としての課題でこのようなものを作成しておりました。 わかりづらい質問で申し訳なかったです! keyとvalueの関係をもう一度確認しておこうとおもいます。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問