2013-08-22 116 views
1

我正在創建一個紙牌遊戲,一個頁面創建遊戲並將每個玩家的所有紙牌插入到MySQL數據庫中。 c1,c2,c3 ...等是由您選擇的隨機卡存儲的。高級數組排序PHP

因此,card1將以c1的形式存儲在數據庫中,其餘12張卡片將作爲c1存儲在數據庫中。

後的卡從DATABSE返回遊戲頁面上,他們通過一系列與卡中的圖片進行組織。然後通過兩個數組顯示它們。

  echo '<form input="index.php" method="post">'; 
      echo $cards[$fetch['c1']].'<input class="check" type="checkbox" name="c1c">'; 
      echo $cards[$fetch['c2']].'<input class="check" type="checkbox" name="c2c">'; 
      echo $cards[$fetch['c3']].'<input class="check" type="checkbox" name="c3c">'; 
      echo $cards[$fetch['c4']].'<input class="check" type="checkbox" name="c4c">'; 
      echo $cards[$fetch['c5']].'<input class="check" type="checkbox" name="c5c">'; 
      echo $cards[$fetch['c6']].'<input class="check" type="checkbox" name="c6c">'; 
      echo $cards[$fetch['c7']].'<input class="check" type="checkbox" name="c7c">'; 
      echo $cards[$fetch['c8']].'<input class="check" type="checkbox" name="c8c">'; 
      echo $cards[$fetch['c9']].'<input class="check" type="checkbox" name="c9c">'; 
      echo $cards[$fetch['c10']].'<input class="check" type="checkbox" name="c10c">'; 
      echo $cards[$fetch['c11']].'<input class="check" type="checkbox" name="c11c">'; 
      echo $cards[$fetch['c12']].'<input class="check" type="checkbox" name="c12c">'; 
      echo $cards[$fetch['c13']].'<input class="check" type="checkbox" name="c13c">'; 
      print_r($fetch); 

$cards是圖片分類器。

$fetch是從數據庫返回的數組。

  $query = "SELECT c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 FROM games WHERE comp = 0"; 
      $stmt = $db->prepare($query); 
      $stmt->execute(); 

      $fetch = $stmt->fetch(PDO::FETCH_ASSOC); 

      asort($fetch); 

下面這段代碼爲我提供了正是我需要的print_r回報

Array ([c9] => 3 [c5] => 6 [c10] => 8 [c11] => 13 [c13] => 15 [c3] => 16 [c2] => 18 [c1] => 19 [c4] => 24 [c8] => 40 [c12] => 44 [c7] => 45 [c6] => 47) 有組織的上升,但後來當我顯示卡,我無法弄清楚如何讓他們的順序運行,因爲關鍵是數據庫中的列名,以及我在顯示中無法要求的值。

所以我的基本問題是,我如何排序卡,以便他們運行通過我當前的陣列中排序圖片升序卡?

如果需要;

  $cards = array(
        "0" => "<img src=\"cards/dead.png\"/>", 
        "1" => "<img src=\"cards/2_of_spades.png\"/>", 
        "2" => "<img src=\"cards/3_of_spades.png\"/>", 
        "3" => "<img src=\"cards/4_of_spades.png\"/>", 
        "4" => "<img src=\"cards/5_of_spades.png\"/>", 
        "5" => "<img src=\"cards/6_of_spades.png\"/>", 
        "6" => "<img src=\"cards/7_of_spades.png\"/>", 
        "7" => "<img src=\"cards/8_of_spades.png\"/>", 
        "8" => "<img src=\"cards/9_of_spades.png\"/>", 
        "9" => "<img src=\"cards/10_of_spades.png\"/>", 
        "10" => "<img src=\"cards/jack_of_spades2.png\"/>", 
        "11" => "<img src=\"cards/queen_of_spades2.png\"/>", 
        "12" => "<img src=\"cards/king_of_spades2.png\"/>", 
        "13" => "<img src=\"cards/ace_of_spades.png\"/>", 

        "14" => "<img src=\"cards/2_of_clubs.png\"/>", 
        "15" => "<img src=\"cards/3_of_clubs.png\"/>", 
        "16" => "<img src=\"cards/4_of_clubs.png\"/>", 
        "17" => "<img src=\"cards/5_of_clubs.png\"/>", 
        "18" => "<img src=\"cards/6_of_clubs.png\"/>", 
        "19" => "<img src=\"cards/7_of_clubs.png\"/>", 
        "20" => "<img src=\"cards/8_of_clubs.png\"/>", 
        "21" => "<img src=\"cards/9_of_clubs.png\"/>", 
        "22" => "<img src=\"cards/10_of_clubs.png\"/>", 
        "23" => "<img src=\"cards/jack_of_clubs2.png\"/>", 
        "24" => "<img src=\"cards/queen_of_clubs2.png\"/>", 
        "25" => "<img src=\"cards/king_of_clubs2.png\"/>", 
        "26" => "<img src=\"cards/ace_of_clubs.png\"/>", 

        "27" => "<img src=\"cards/2_of_hearts.png\"/>", 
        "28" => "<img src=\"cards/3_of_hearts.png\"/>", 
        "29" => "<img src=\"cards/4_of_hearts.png\"/>", 
        "30" => "<img src=\"cards/5_of_hearts.png\"/>", 
        "31" => "<img src=\"cards/6_of_hearts.png\"/>", 
        "32" => "<img src=\"cards/7_of_hearts.png\"/>", 
        "33" => "<img src=\"cards/8_of_hearts.png\"/>", 
        "34" => "<img src=\"cards/9_of_hearts.png\"/>", 
        "35" => "<img src=\"cards/10_of_hearts.png\"/>", 
        "36" => "<img src=\"cards/jack_of_hearts2.png\"/>", 
        "37" => "<img src=\"cards/queen_of_hearts2.png\"/>", 
        "38" => "<img src=\"cards/king_of_hearts2.png\"/>", 
        "39" => "<img src=\"cards/ace_of_hearts.png\"/>", 

        "40" => "<img src=\"cards/2_of_diamonds.png\"/>", 
        "41" => "<img src=\"cards/3_of_diamonds.png\"/>", 
        "42" => "<img src=\"cards/4_of_diamonds.png\"/>", 
        "43" => "<img src=\"cards/5_of_diamonds.png\"/>", 
        "44" => "<img src=\"cards/6_of_diamonds.png\"/>", 
        "45" => "<img src=\"cards/7_of_diamonds.png\"/>", 
        "46" => "<img src=\"cards/8_of_diamonds.png\"/>", 
        "47" => "<img src=\"cards/9_of_diamonds.png\"/>", 
        "48" => "<img src=\"cards/10_of_diamonds.png\"/>", 
        "49" => "<img src=\"cards/jack_of_diamonds2.png\"/>", 
        "50" => "<img src=\"cards/queen_of_diamonds2.png\"/>", 
        "51" => "<img src=\"cards/king_of_diamonds2.png\"/>", 
        "52" => "<img src=\"cards/ace_of_diamonds.png\"/>" 
      ); 
+1

你知道你可以實際使用的print_r如果你喜歡 - 你可以將其返回到您的代碼,而不是輸出緩衝器,喜歡的東西'$ aPrintedData =的print_r($ aVariable,真);' – CD001

+0

不是'foreach($ fetch as $ card){}'按順序返回它們嗎? – Cyntech

+0

會幫助我嗎?我假設它會創建一個相同的數組到我已有的'$ fetch' ..?另外,我在代碼中的print_r純粹是爲了調試。 – dan

回答

0

使用foreachdoco here)應以正確的順序返回它們。

foreach($fetch as $cardId => $card) { 
    echo 'CardID: ' . $cardId . '<br>'; 
    echo 'Card: ' . $cards[$card] . '<br>'; 
} 

$cardId是關鍵(例如 'C1')和$card是該卡的ID值(例如3)。

PHPFiddle example