【发布时间】:2013-02-04 18:14:03
【问题描述】:
我想在 php 中创建一个关联数组,其中包含动态键以及来自特定 mysql 表的动态值。
表名为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=>一月=>3500:
foreach($associativeArray as $k => $id){
echo $k."=>".$id;
}
那么我该如何修复它并使用正确的输出 Jan=>3500?
【问题讨论】:
-
为什么同一个 SQL 查询要运行两次?
-
您希望
array(substr(trim($mon), 0, -1))做什么?所有这一切都是将字符串转换为数组,从而为您提供一个包含一个元素的数组。array('1, 2, 3')不会创建一个包含 3 个元素的数组,它会在一个元素上创建一个数组,即字符串'1, 2, 3'。要将字符串转换为数组,请使用explode。$array = explode(', ', '1, 2, 3);.
标签: php arrays associative