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

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

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

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

PHP

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

Q&A

解決済

1回答

5810閲覧

Laravel CollectionとCollectionを比較して一致するかを判定したい

larachan

総合スコア28

Laravel

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

PHP

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

0グッド

0クリップ

投稿2020/06/16 05:18

リクエストから下記のような配列をつくります

$target = collect([ "target" => [ 'a_flg' => $request->input('requestData.a_flg'), 'b_flg' => $request->input('requestData.b_flg'), 'c_flg' => $request->input('requestData.c_flg'), 'd_flg' => $request->input('requestData.d_flg'), 'e_flg' => $request->input('requestData.e_flg'), ] ]);

リクエストのパターンを下記のコレクションに定義します。

$Collection = collect([ "1" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 0, 'd_flg' => 0, 'e_flg' => 0,], "2" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 0, 'd_flg' => 0, 'e_flg' => 1,], "3" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 0, 'd_flg' => 1, 'e_flg' => 0,], "4" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 0, 'd_flg' => 1, 'e_flg' => 1,], "5" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 1, 'd_flg' => 0, 'e_flg' => 0,], "6" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 1, 'd_flg' => 0, 'e_flg' => 1,], "7" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 1, 'd_flg' => 1, 'e_flg' => 0,], "8" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 1, 'd_flg' => 1, 'e_flg' => 1,], "9" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 0, 'd_flg' => 0, 'e_flg' => 0,], "10" => ['a_flg' => 0,'b_flg' => 1, 'c_flg' => 0, 'd_flg' => 0, 'e_flg' => 1,], "11" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 0, 'd_flg' => 1, 'e_flg' => 0,], "12" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 0, 'd_flg' => 1, 'e_flg' => 1,], "13" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 1, 'd_flg' => 0, 'e_flg' => 0,], "14" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 1, 'd_flg' => 0, 'e_flg' => 1,], "15" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 1, 'd_flg' => 1, 'e_flg' => 0,], "16" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 1, 'd_flg' => 1, 'e_flg' => 1,], . . . .

リクエストを元に作成した$targetのフラグパターンが、$Collectionのなかのパターンに一致したら、一致した$Collectionのkeyを取得し、case文で
それぞれの関数を呼び出すといった処理を行いたいです。

詳しい方教えて下さい。

以上、宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こういうことかな

php

1 $target = collect([ 2 "target" => [ 3 'a_flg' => 0, 4 'b_flg' => 0, 5 'c_flg' => 0, 6 'd_flg' => 0, 7 'e_flg' => 1, 8 ] 9 ]); 10 11 $Collection = collect([ 12 "1" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 0, 'd_flg' => 0, 'e_flg' => 0,], 13 "2" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 0, 'd_flg' => 0, 'e_flg' => 1,], 14 "3" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 0, 'd_flg' => 1, 'e_flg' => 0,], 15 "4" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 0, 'd_flg' => 1, 'e_flg' => 1,], 16 "5" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 1, 'd_flg' => 0, 'e_flg' => 0,], 17 "6" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 1, 'd_flg' => 0, 'e_flg' => 1,], 18 "7" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 1, 'd_flg' => 1, 'e_flg' => 0,], 19 "8" => ['a_flg' => 0, 'b_flg' => 0, 'c_flg' => 1, 'd_flg' => 1, 'e_flg' => 1,], 20 "9" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 0, 'd_flg' => 0, 'e_flg' => 0,], 21 "10" => ['a_flg' => 0,'b_flg' => 1, 'c_flg' => 0, 'd_flg' => 0, 'e_flg' => 1,], 22 "11" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 0, 'd_flg' => 1, 'e_flg' => 0,], 23 "12" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 0, 'd_flg' => 1, 'e_flg' => 1,], 24 "13" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 1, 'd_flg' => 0, 'e_flg' => 0,], 25 "14" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 1, 'd_flg' => 0, 'e_flg' => 1,], 26 "15" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 1, 'd_flg' => 1, 'e_flg' => 0,], 27 "16" => ['a_flg' => 0, 'b_flg' => 1, 'c_flg' => 1, 'd_flg' => 1, 'e_flg' => 1,], 28 ]); 29 30 $_filter = $Collection->filter(function($v) use ($target) { 31 return(collect($v)->diffAssoc($target["target"])->isEmpty() !== false); 32 }); 33 34 foreach($_filter as $key => $value) { 35 \Log::info($key); 36 \Log::info($value); 37 } 38

ログ内容

txt

1[2020-06-16 09:48:01] local.INFO: 2 2[2020-06-16 09:48:01] local.INFO: array ( 3 'a_flg' => 0, 4 'b_flg' => 0, 5 'c_flg' => 0, 6 'd_flg' => 0, 7 'e_flg' => 1, 8)

投稿2020/06/16 09:51

rururu3

総合スコア5545

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

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

larachan

2020/06/16 13:15

真似して実装させていただきました。 凄いですね!尊敬します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問