我想在PHP中创建一个关联数组,其键和值都是从特定MySQL表中动态获取的。
表名为“monthly_salary”,具有两个列分别命名为“month”和“salary”。
我从其中获取数据:
表名为“monthly_salary”,具有两个列分别命名为“month”和“salary”。
我从其中获取数据:
$sql = mysql_query('SELECT * FROM monthly_salary');
$sql2 = mysql_query('SELECT * FROM monthly_salary');
然后将收集到的数据分配并连接到 $mon
和 $sal
:
$mon = "";
$sal = "";
while($row = mysql_fetch_array($sql)){
$mon .= $row['month'].", ";
}
while($row = mysql_fetch_array($sql2)){
$sal .= $row['salary'].", ";
}
之后,我将其转换为数组,并进行串联,直到它成为一个关联数组:
$monArray = array(substr(trim($mon), 0, -1));
$salArray = array(substr(trim($sal), 0, -1));
$key = "";
$keyWithVal = "";
foreach($monArray as $k){
$key .= $k." => ";
}
foreach($salArray as $k){
$keyWithVal .= $key.$k.",";
}
$associativeArray = array(substr(trim($keyWithVal), 0, -1));
我的问题是,当我输出时结果总是像这样3500=>Jan=>3500:
foreach($associativeArray as $k => $id){
echo $k."=>".$id;
}
那么我该如何修复它并得到正确输出Jan=>3500?
array(substr(trim($mon), 0, -1))
做什么?这只是将字符串转换为数组,它会给你一个只有一个元素的数组。array('1, 2, 3')
不会创建一个有三个元素的数组,而是创建了一个只有一个元素的数组,即字符串'1, 2, 3'
。如果要将字符串转换为数组,请使用explode
。$array = explode(', ', '1, 2, 3);
。 - gen_Eric