显示10个阵列卡

时间:2014-01-05 04:55:14

标签: php html

http://plnkr.co/edit/06lu6r34eGNfRq1fygNy

我想只展示10"卡"从我的阵列中,我该怎么办? 我尝试使用unset(),但效率非常低,甚至不适用于多张卡片。 另外我如何让代码显示"卡"水平而不是垂直?

2 个答案:

答案 0 :(得分:5)

如果您想使用unset,则正确的语法为unset($cards[1]); unset($cards[2]); unset($cards[3]); ...,依此类推。

但是,根据您的具体情况,我建议您使用array_slice

$cards = array(
    "Messi",           "Ronaldo",         "Ibrahimovic",     "Ribery",          "Robben",          "Neymar",          "Rooney",          "Casillas",
    "Falcao",          "Van Persie",      "Hazard",          "Iniesta",         "Xavi",            "Schweinsteiger",  "Silva",           "Fabregas",
    "Lahm",            "Aguero",          "Cavani",          "Vidic",           "Ozil",            "Mata",            "Bale",            "ThiagoSilva",
    "Kompany",         "Tevez",           "Toure",           "Ramos",           "Suarez",          "Pirlo",           "DiMaria",         "Neuer",
    "Pique",           "Buffon",          "Lewandowski",     "Gomez",           "Chiellini",       "Cole",            "Pedro",           "Busquets",
    "Cech",            "Muller",          "Hummels",         "Alonso",          "Navas",           "Modric",          "Cazorla",         "Gotze",
    "Benzema",         "Vidal",           "Lavezzi"
);
shuffle($cards);
$cards = array_slice($cards, 0, 10);

对于水平显示,您可以在循环的每次迭代结束时省略<br>,但是,根据用户浏览器的分辨率,图像可能占用多行。对于严格水平排列,请使用包含10列的HTML表格:

print("<table><tr>");
foreach($cards as $card){
$img = "http://d2bm3ljpacyxu8.cloudfront.net/fit/105x97/http://clearpkz.webs.com/webstore/".$card.".png";
print("<td><img src=\"".$img."\"/></td>");
}
print("</tr></table>");

答案 1 :(得分:1)

以下也适用:

for ($i = 0; $i < 10; $i++) {
  echo $cards[$i] ." <br>"; // put the name above the card
  echo "<img src='http://d2bm3ljpacyxu8.cloudfront.net/fit/105x97/http://clearpkz.webs.com/webstore/$card.png'> <br>";

  }

如果你想要它们水平而没有名字,请不要放入<br>

for ($i = 0; $i < 10; $i++) {
  echo "<img src='http://d2bm3ljpacyxu8.cloudfront.net/fit/105x97/http://clearpkz.webs.com/webstore/$card.png'>";
}