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()。方便知道兩者之間的區別。
- 1 回答
- 0 關注
- 133 瀏覽
添加回答
舉報