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

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

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

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

Q&A

解決済

1回答

1106閲覧

foreach文をwhile文に書き換えたいのですがうまくいきません。

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

0グッド

0クリップ

投稿2021/01/17 06:21

編集2021/01/17 06:28

Lalavelの勉強をしています。以下のようなコードで
https://localhost/firstlaravel/public/chap3/foreachを実行すると

Aは田中です Bは中野です Cは野村です

このように正常に表示されます。
これをwhile文に書き換えて実行したいのですがうまくいきません。
https://localhost/firstlaravel/public/chap3/whileを実行すると以下のエラーが出ています。
ParseError
syntax error, unexpected token "as" (View: C:\XAMPP\htdocs\firstlaravel\resources\views\chap3\while.blade.php)

条件文の書き方が間違っていると思いいろいろ書き換えて試しましたが、同じエラーになりました。
@while(isset( $data[$resultList] ) && ($data[$resultList] as $key => $value))

次に@while(isset($data[$resultList]) && ($resultList as $key => $value))として実行するしても、同じエラーになりました。

次に@while($resultList) && ($resultList as $key => $value))として実行するしても、同じエラーになりました。

条件文の書き方が根本的に間違っていると思いますのでよろしくお願いいたします。
Lalavelのbladeではwhile文は使わない方がいいようなことも、ネットに出ていましたが
どうなんでしょうか。

php

1// C:\XAMPP\htdocs\firstlaravel\resources\views\chap3\foreach.blade.php 2 3<!DOCTYPE html> 4<html lang="ja"> 5<head> 6 <meta charset="UTF-8"> 7 <title>foreachの記述方法</title> 8</head> 9<body> 10 <p> 11 <ul> 12 @foreach($resultList as $key => $value) 13 14 <li>{{$key}}{{$value}}です</li> 15 16 @endforeach 17 </ul> 18  </p> 19</body> 20</html>

php

1 2// C:\XAMPP\htdocs\firstlaravel\resources\views\chap3\while.blade.php 3 4<!DOCTYPE html> 5<html lang="ja"> 6<head> 7 <meta charset="UTF-8"> 8 <title>wihileの記述方法</title> 9</head> 10<body> 11 <p> 12 <ul> 13 @while(isset( $data[$resultList] ) && $data[$resultList] as $key => $value) 14 15 <li>{{$key}}{{$value}}です</li> 16 17 @endwhile 18 </ul> 19 </p> 20</body> 21</html>

php

1// C:\XAMPP\htdocs\firstlaravel\routes\web.php 2 3<?php 4 5use Illuminate\Support\Facades\Route; 6 7Route::get("/chap3/foreach", function() { 8 $data["resultList"] = ["A"=>"田中", "B"=>"中野", "C"=>"野村"]; 9 return view("chap3.foreach", $data); 10}); 11 12 13Route::get("/chap3/while", function() { 14 $data["resultList"] = ["A"=>"田中", "B"=>"中野", "C"=>"野村"]; 15 return view("chap3.while", $data); 16 17

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

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

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

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

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

guest

回答1

0

ベストアンサー

whileasは使えません。

投稿2021/01/17 06:23

maisumakun

総合スコア145121

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

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

maisumakun

2021/01/17 06:26

foreachを使わずに同様の動作を実装しようとするなら、「いったんキーだけ抽出して、数を数えつつ回す」、あるいは「currentやnextなど、内部ポインタを操作する関数を使う」といった方法が考えられますが、どちらもかなり面倒です。
退会済みユーザー

退会済みユーザー

2021/01/17 06:31

ありがとうございます。foreachだけで出来るので、あえて別のややこしい方はやめた方がいいですね。 次に進みます。
maisumakun

2021/01/17 06:33

はい、プログラミングパズルで「foreachを使わずに」のような縛りがある状況でもなければ、誰も書かない部類のコードです。
退会済みユーザー

退会済みユーザー

2021/01/17 07:04

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問