2 回答
TA贡献1874条经验 获得超12个赞
提示:您不需要为代码中的空间支付租金,因此您应该使用它来获得更好的可浏览性。
我已将您的用户名和图像放入基于密钥的数组中,因此您可以查找该密钥是否存在,如果不存在,则不需要用户名或图像。这里的问题是你在表中的存储,你使用以 0 开头的数字。
您还应该考虑这一点:删除列卡、图像、捐赠者并将所有值放在不同的表中,例如:
牌组:预加入,card_id:16,用户:17,图片:img12.jpg
while ( $col = mysqli_fetch_assoc($res) ) {
$data = array();
if ($col['cards'] == '' ){
$cards = explode(',', $col['cards']);
array_walk($cards, 'trim_value');
$count = count($cards);
$donator = explode(',', $col['donator']);
$image = explode(',', $col['image']);
foreach ($cards as $key=>$card){
$data[$card] = array(
'user' => trim($donator[$key]),
'img' => trim($image[$key])
);
}
}
echo '<h2>'.$col['deck'].' ('.$count.' / '.$col['count'].')</h2>
<table width="625" cellspacing="0" border="1"><tr>';
for ( $i = 1; $i <= $col['count']; $i++ ) {
$number = $i;
if ( $number < 10 )
$number = "0".$number;
if ( in_array($i, $data) )
echo '<td width="125" align="center" height="105">'.$i.'<br ><a href="'.$data[$i]['img'].'" target="_blank">'.$data[$i]['user'].'</a></td>';
else
echo '<td width="125" align="center" height="105">00</td>';
if ( $col['break'] !== '0' && $i % $col['break'] == 0 )
echo '</tr>';
}
echo '</table>';
}
TA贡献1856条经验 获得超11个赞
explode返回一个数组,通过使用foreach(... $key => ...)我们将获得 中当前元素的键$key。由于所有数组共享相同的键,因此我们可以使用$keyof $cardsfor$users和$images。
$cards = explode(',', '16, 01, 05');
$users = explode(',', 'User2, User1, User7');
$images = explode(',', 'img2.jpg, img1.jpg, img7.jpg');
$cards = array_map('trim', $cards);
$users = array_map('trim', $users);
$images = array_map('trim', $images);
foreach ($cards as $key => $value) {
echo sprintf(
'Box %02d = %s (%s link)',
$cards[$key],
$users[$key],
$images[$key]
) . PHP_EOL;
}
输出
Box 16 = User2 (img2.jpg link)
Box 01 = User1 (img1.jpg link)
Box 05 = User7 (img7.jpg link)
工作示例。
- 2 回答
- 0 关注
- 123 浏览
添加回答
举报