前提
配列から3つの値が存在するか調べたい。
実現したいこと
ランダムに生成した配列の5つの値に、
3つの値(1,2,3)が存在するか調べたいです。
発生している問題・エラーメッセージ
in_arrayを使って調べているのですが1つの値(1)だけだと正常に動作するのですが、
&&を使って複数指定(1,2,3)すると表示されなくなります。
どこか間違っているのか分からず、よろしければご指摘お願いいたします。
該当のソースコード
PHP
1<?php 2$cards = [ 3 ['suit'=>'heart', 'number'=>1], 4 ['suit'=>'heart', 'number'=>2], 5 ['suit'=>'heart', 'number'=>1], 6 ['suit'=>'heart', 'number'=>1], 7 ['suit'=>'heart', 'number'=>1], 8]; 9 10function judge($cards) { 11 12 $suit = ["heart", "spade", "diamond", "club"]; 13 $number = [1,2,3,4,5,6,7,8,9,10,11,12,13]; 14 15 16 // カードの並び替え 17 foreach($cards as &$card){ 18 19 $numberrand = array_rand($number); 20 $suitrand= array_rand($suit); 21 $card['suit'] = $suit[$suitrand]; 22 $card['number'] = $number[$numberrand]; 23 echo $card['suit']; 24 echo $card['number'] .' '; 25 26 27 } 28//ここで(1,2,3)の値を支持しているのですが表示がされません。 29foreach($cards as &$card){ 30 31 if(in_array('1',$card) && in_array('2',$card) && in_array('3',$card)){ 32 return "1.2.3のカードがあります"; 33 } 34 35 } 36 37 38if(count($cards) !== count(array_unique($cards, SORT_REGULAR))){ 39 return "手札は不正"; 40 } 41?>
html
1<body> 2 <section> 3 4 5 <p><?php foreach($cards as $card): ?><?=$card['suit'].$card['number'] ?><?php endforeach; ?></p> 6 <p><?=judge($cards) ?>です。</p> 7 8 9 </section> 10</body>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。