要求:将54张扑克牌,随机分给3个人,并显示他们的牌,查出牌中同花顺最长的人,并把同花顺显示出来。下方是一部分代码,怎么修改,可以达到效果,主要是排序问题以及花色判断问题。
<!doctype html>
<html>
<!-- 随机发扑克牌 -->
<head>
<meta charset="UTF-8">
<title>随机发牌</title>
<style>
div{margin:15px 0}
font{border:1px solid #ccc;padding:6px 3px;margin-right:10px}
</style>
<?php
// 建立数组保存的牌组池
$num = array('A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K');
$icon = array('♥' => 'red', '♦' => 'red', '♠' => 'black', '♣' => 'black');
//生成扑克牌
$poker = [];
foreach ($icon as $iconkey => $iconvalue) {
foreach ($num as $value) {
$poker[] = "<font style='color:$iconvalue'> {$value} {$iconkey}</font>";
}
}
array_push($poker,"<font>大王</font>","<font>小王</font>");
shuffle($poker); //打乱数组
$output_1 = array_slice($poker,0,18);
$output_2 = array_slice($poker,18,18);
$output_3 = array_slice($poker,36,18);
?>
</head>
<body>
<div>玩家A 牌组</div>
<?php for ($i = 0; $i < 18; ++$i) {
echo current($output_1);
next($output_1);
} ?>
<div>玩家B 牌组</div>
<?php for ($i = 0; $i < 18; ++$i) {
echo current($output_2);
next($output_2);
} ?>
<div>玩家C 牌组</div>
<?php
for ($i = 0; $i < 18; $i++) {
echo current($output_3);
next($output_3);
}
?>
</body>
</html>