您好我已经创建了一个内部带有for循环的数组。在数组到达for循环之前,数组内部没有任何数据。我想为我到目前为止所做的事情添加一个关联数组。例如,我的阵列当前输出
[0] => Array
(
[0] => Version 5
[1] => Feb-16
[2] => gary
[3] => 80
[4] => P
)
我希望它有标题而不是数字
[0] => Array
(
Version => Version 5
Date => Feb-16
Name => gary
RandNum => 80
Letter => P
}
我不确定我是如何适应我的循环的,如果我的不同专栏这些标题我怎么可能。以下是我目前的代码。它将数组输出到顶部。
for($i = 0; $i <= 3; $i++){
for($j = 0; $j <= 4; $j++){
if ($j == 0){
$times_table[$i][$j]= "Version 5" ;
}
else if ($j == 1){
$cur_date = date("M-y", $currentdate);
$currentdate = strtotime('+1 month', $currentdate);
$times_table[$i][$j]= "<strong>" . $cur_date . "</strong>" ;
}
else{
$times_table[$i][$j]= "gary" ;
}
if ($j == 3) {
$numbers = mt_rand(1, 100);
$times_table[$i][$j]= $numbers ;
}
if ($j == 4){
if($i == 0 || $i == 3)
{
$pay = "P";
$times_table[$i][$j]= $pay ;
}
else{
$int = "I";
$times_table[$i][$j]= $int ;
}
}
}
}
答案 0 :(得分:1)
试试这个..
for($i = 0; $i <= 3; $i++){
for($j = 0; $j <= 4; $j++){
if ($j == 0){
$times_table[$i]['Version']= "Version 5" ;
}
else if ($j == 1){
$cur_date = date("M-y", $currentdate);
$currentdate = strtotime('+1 month', $currentdate);
$times_table[$i]['Date']= "<strong>" . $cur_date . "</strong>" ;
}
else{
$times_table[$i]['Name']= "gary" ;
}
if ($j == 3) {
$numbers = mt_rand(1, 100);
$times_table[$i]['RandNum']= $numbers ;
}
if ($j == 4){
if($i == 0 || $i == 3)
{
$pay = "P";
$times_table[$i]['Letter']= $pay ;
}
else{
$int = "I";
$times_table[$i]['Letter']= $int ;
}
}
}
}
希望这能解决您的问题。
答案 1 :(得分:1)
在我看来,你的第二个for循环是不需要的。您应该知道可以创建这样的关联数组:
<?php
$times_table = [];
$times_tables[] = [
'Version' => 'Version 5',
'Date' => 'Feb-16',
'Name' => 'gary',
'RandNum' => '80',
'Letter' => 'P',
];
要与您的代码匹配:
<?php
$times_table = [];
for($i = 0; $i <= 3; $i++){
$times_table[$i]['Version']= "Version 5" ;
$cur_date = date("M-y", $currentdate);
$currentdate = strtotime('+1 month', $currentdate);
$times_table[$i]['Date']= "<strong>" . $cur_date . "</strong>" ;
$times_table[$i]['Name']= "gary" ;
$numbers = mt_rand(1, 100);
$times_table[$i]['RandNum']= $numbers ;
switch ($i) {
case 0:
case 3:
$letter = 'P';
break;
default:
$letter = 'I';
}
$times_table[$i]['Letter']= $letter;
}
我认为这应该以更清洁的方式做你想做的事情!
答案 2 :(得分:0)
for($i = 0; $i <= 3; $i++){
for($j = 0; $j <= 4; $j++){
if ($j == 0){
$times_table["Version"][$j]= "Version 5" ;
}
else if ($j == 1){
$cur_date = date("M-y", $currentdate);
$currentdate = strtotime('+1 month', $currentdate);
$times_table["Date"][$j]= "<strong>" . $cur_date . "</strong>" ;
}
else{
$times_table["Name"][$j]= "gary" ;
}
if ($j == 3) {
$numbers = mt_rand(1, 100);
$times_table["RandNum"][$j]= $numbers ;
}
if ($j == 4){
if($i == 0 || $i == 3)
{
$pay = "P";
$times_table["Letter"][$j]= $pay ;
}
else{
$int = "I";
$times_table["Letter"][$j]= $int ;
}
}
}
}
答案 3 :(得分:-1)
您可以像这样创建关联数组:
$a=array("Version"=> "Version 5",
"Date"=> "Feb-16",
"Name" => "gary",
"RandNum" => 80,
"Letter" => "P"
)
要在for循环中使用$a['key']
来访问此数组。例如。要访问版本5,请使用$a['version']
访问2月16日使用$a['Date']
。