我試圖創建一個名爲「eggs」的多維數組,並使用for
循環向它添加3個數組。然後,我試圖將他們的ID分配給他們的數組編號。我的代碼是如下:用for循環創建數組
error_reporting(E_ALL);
$eggCount = 3;
for($i = 1; $i <= $eggCount; $i++) {
create("eggs", array($i => array("ID" => $i)));
}
function create($arrName, Array $arrKeys) {
$lName = strtolower($arrName);
$$lName = array();
foreach($arrKeys as $key => $value) {
$$lName[$key] = $value;
}
for($i = 1; $i <= $GLOBALS['eggCount']; $i++) {
echo "Egg $i's ID: " . $eggs[$i]['ID'];
}
}
它輸出以下:
Notice: Undefined offset: 1 on line 16
Egg 1's ID:
Notice: Undefined offset: 2 on line 16
Egg 2's ID:
Notice: Undefined offset: 3 on line 16
Egg 3's ID:
Notice: Undefined offset: 1 on line 16
Egg 1's ID:
Notice: Undefined offset: 2 on line 16
Egg 2's ID:
Notice: Undefined offset: 3 on line 16
Egg 3's ID:
Notice: Undefined offset: 1 on line 16
Egg 1's ID:
Notice: Undefined offset: 2 on line 16
Egg 2's ID:
Notice: Undefined offset: 3 on line 16
Egg 3's ID:
我希望它輸出此:
Egg 1's ID: 1
Egg 2's ID: 2
Egg 3's ID: 3
編輯: 如上面的例子中是相當混亂和奇怪的是,這是我實際要做的 - 爲服務器創建配置文件 -
function CreateConfig($name, Array $arr) {
$lName = strtolower($name);
$lolswag = fopen("Config/$name.php", "a");
foreach($arr as $key => $value) {
$contents = '<?php
' . $$lName . ' = array(
' . $key . ' => ' . $value . ',' .
');' .
'?>';
}
fwrite($lolswag, $contents);
fclose($lolswag);
}
$serverCount = Base\Console::GetInput("Number of game servers: ");
$serverHandle = array();
for($i = 1; $i <= $serverCount; $i++) {
$serverHandle[$i] = array("Address" => Base\Console::GetInput("Server $i Address: "), "Name" => Base\Console::GetInput("Server $i Name: "), "MaxClients" => Base\Console::GetInput("Server $i Maximum Clients: "), Base\Console::GetInput("Server $i Port: "));
CreateConfig("Servers", array($i => $serverHandle[$i]));
}
你沒有聲明數組'$ eggs' – krishna
@krishna我在'for'做循環,它用第一個參數'eggs'調用我的'create()'函數。 – James
如果你使用變量變量,你幾乎肯定會做錯事。 –