如何使用阵列中的密钥命名阵列密钥
问题描述:
我有一些数据,是的,数据。该数据来自MySQL查询,并且始终包含4个项目。我想将这些数据缓存在一个数组表中以供稍后在网页中使用,但我想保留查询中的键并将每个分组分离到多维数组中。但是,为了节省每次我想要查找给定数据组的迭代通过数组的时间,我想调用第一个数组的键与ID键相同,ID键始终是每个四项中的第一个键。如何使用阵列中的密钥命名阵列密钥
在分钟,我用这个代码:
function mysql_fetch_full_result_array($result)
{
$table_result=array();
$r=0;
while($row = mysql_fetch_assoc($result)){
$arr_row=array();
$c=0;
while ($c < mysql_num_fields($result)) {
$col = mysql_fetch_field($result, $c);
$arr_row[$col -> name] = $row[$col -> name];
$c++;
}
$table_result[$r] = $arr_row;
$r++;
}
return $table_result;
}
我目前正在测试这种使用3个独特的用户,所以我越来越从查询三行回来,从这个函数结束数据达格式为:
[0]=>
. . [id] => 1
. . [name] => random name
. . [tel] => random tel
. . [post] => post code data
[1]=>
. . [id] => 34
. . [name] => random name
. . [tel] => random tel
. . [post] => post code data
[2]=>
. . [id] => 56
. . [name] => random name
. . [tel] => random tel
. . [post] => post code data
那么,如何改变代码来代替键[0],[1],[2]给我的输出:
[1]=>
. . [id] => 1
. . [name] => random name
. . [tel] => random tel
. . [post] => post code data
[34]=>
. . [id] => 34
. . [name] => random name
. . [tel] => random tel
. . [post] => post code data
[56]=>
. . [id] => 56
. . [name] => random name
. . [tel] => random tel
. . [post] => post code data
我不介意如果主数组键是数字串而不是数字,但我有点卡住了,我试着改变$table_result[$r] = $arr_row;
部分来读$table_result[$result['id']] = $arr_row;
,但只输出一个人的数组。我知道我需要另一个循环,但我正在努力研究如何编写它。
答
更改行:
$table_result[$r] = $arr_row; $r++;
to
$table_result[$arr_row['id']] = $arr_row;
而且我不认为你再需要$ r。
答
$arr_row[(name of ID field in your result)][$col -> name] = $row[$col -> name]
这应该设置你的数组键作为ID,所以应该分配,例如:
$arr_row[34]['id'] = 34;
$arr_row[34]['name'] = 'name';
$arr_row[34]['tel'] = 'tel';
$arr_row[34]['post'] = 'post';
答
如何:
$table_result = array();
$sql = "SELECT id, name, tel, post FROM sometable";
$res = mysql_query($sql);
if (mysql_error()) {
die("MySQL error: " . mysql_error());
}
while($row = mysql_fetch_array($res)) {
$table_result[$row['id']] = $row;
}
如果像你说的,你不介意被重复每个数组元素中的ID字段,那么就没有必要遍历各行和提取物领域。
奇妙的是,欢呼! – Confused 2010-03-19 14:59:48