亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使此列表與其中顯示的空白字段一起使用?

如何使此列表與其中顯示的空白字段一起使用?

PHP
汪汪一只貓 2022-06-11 18:57:13
請幫我找出一個合乎邏輯的解決方案來使此類播放器列表正常工作我有一個充滿數據的數組player_number player_name-------------|-------1            | player12            | player23            | player36            | player68            | player812           | player12-------------|-------因此,如您所見,可能會遺漏一些數字,但最大值player_number始終為 50,所以問題是我如何顯示所有 50 個字段,盡管也必須顯示丟失的數字但在其字段上填充“-”我的邏輯問題是 my_array[$i] 像 1 到 6 一樣(上面顯示了列表)所以我的 for() 循環不能像那樣運行它my_array[$i] == player_number我想在頁面上顯示它1            | player12            | player23            | player34            | -5            | -6            | player67            | -8            | player89            | -10           | -11           | -12           | player12-------------|-------編輯:當我使用提供的代碼時它可以,但是當我嘗試用我的代碼實現它時,邏輯失敗    HowIGrabMyData() {        $query = $this->db->query($sql); // "SELECT * from `players` etc...        $output = array();        foreach ( $query->rows as $result ) {            $output[] = array(                'player_number' => $result['player_number'],                'player_name' => $result['player_nick']            );        }        return $output;    }    $players = HowIGrabMyData();    <?php for($i=1; $i <= 50; $i++){ // loop for 50 times        $player_name = "-";        if(isset($players[$i]['player_name'])){ // if the player name is set, use it            $player_name = $players[$i]['player_name'];        }        echo $i. " | ".$player_name."<br>";    }它仍然在一行中顯示 1 到 6 行,而不是我想要的方式,在 50 個字段中都是空白的我仍然想念主要邏輯......
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

新答案。


我已經用你的新數組格式更新了我的答案。


這次我們創建了一個包含 50 個索引的數組,所有索引都設置為“-”。然后我們檢查輸出數組并將玩家姓名放在具有 50 個索引的數組中的正確位置。最后,我們檢查 50 個索引并將它們打印到屏幕上。


這是代碼:


   <?php

$output= array(

    array(

        "player_number" => 1,

        "player_name"=> "player1"

    ),

    array(

        "player_number" => 2,

        "player_name"=> "player2"

    ),

    array(

        "player_number" => 3,

        "player_name"=> "player3"

    ),

    array(

        "player_number" => 6,

        "player_name"=> "player6"

    ),

    array(

        "player_number" => 8,

        "player_name"=> "player8"

    ),

    array(

        "player_number" => 12,

        "player_name"=> "player12"

    ),

);


$player_array = array();


// Create an array with 50 indexes all set to '-'

for($i=1; $i <= 50; $i++){ // loop for 50 times

    $player_array[$i]= "-";


}


// update the player array with names;

foreach($output as $value){

    $player_array[$value['player_number']] = $value['player_name'];

}


// print out numbers and  names

foreach($player_array as $number => $name){


    echo $number. " | ".$name."<br>";


}

舊答案


您必須創建一個運行 50 次的 for 循環,檢查數組中的索引是否有值,以及該索引處是否有使用該名稱。否則它只會使用 - 作為玩家名稱。


嘗試這個:


<?php   

$my_array= array(

    1 => "player1",

    2 => "player2",

    3 => "player3",

    6 => "player6",

    8 => "player8",

    12 => "player12",


);  


for($i=1; $i <= 50; $i++){ // loop for 50 times

        $player_name = "-";

        if(isset($my_array[$i])){ // if the player name is set, use it

            $player_name = $my_array[$i];

        }

        echo $i. " | ".$player_name."<br>";

    }


?>

查看isset()函數。


你也可以使用array_key_exists()代替 isset()。像這樣:


for($i=1; $i <= 50; $i++){

    $player_nick = "-";

    if(array_key_exists($i,$my_array)){ //if value of $i is an index in the array

        $player_nick = $my_array[$i];

    }

    echo $i. " | ".$player_name."<br>";

}

另請查看isset() 與 array_key_exists()。方便知道兩者之間的區別。


查看完整回答
反對 回復 2022-06-11
  • 1 回答
  • 0 關注
  • 133 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號