$kudamono = ['ミカン'=>'1','ブドウ'=>'1','メロン'=>'0','リンゴ'=>'1',];
と配列に入っているとします。
この中で「1」の値を持つ要素を( || )で条件分岐したいです。(つまり、上記の配列の場合だとミカンとブドウとリンゴ)
array_filterで検索元のデータが入った$bから、値「1」の要素を一つでも持っていればtrueにしたいです。
php
1$a = array_filter($b,function($x){ 2 3foreach((array)$kudamono as $val){ 4 if($x[$val] !== "1") return false; 5} 6 7return true; 8}); 9 10var_dump($a);
ミカンとメロンのカゴが回ってきた時にで理想の動きならば、trueにしたいですが、上記のようなソースだと「且つ」という条件分岐になってしまい、falseになってしまいます。
アルゴリズムが全く思いつかず、、皆様のお知恵をぜひ拝借したく思いますm(__)m
【追記】
$bには下記のようなデータがはいっています。カゴが数種類あってカゴの中身にどんな果物が入っているかというイメージです。
$b = [
["kago1" = ["ミカン"=>"1","ブドウ"=>"0","メロン"=>"0","リンゴ"=>"1"]],
["kago2" = ["ミカン"=>"0","ブドウ"=>"1","メロン"=>"0","リンゴ"=>"1"]],
["kago3" = ["ミカン"=>"1","ブドウ"=>"0","メロン"=>"1","リンゴ"=>"0"]]
];
【追記2】
$kudamonoは検索要素となります。
$kudamonoの中の配列の内容に従って、$bから条件にあうものをarray_filterでフィルターで通したいという意図です。
回答1件
あなたの回答
tips
プレビュー