【发布时间】:2013-03-10 21:40:09
【问题描述】:
我正在创建一个类函数,它接受 mysql 查询结果并返回一个多维数组,其中第一个数组指针是表列,第二个指针是它在 MySQL 数据中位置的数字指示符。
例如,表格有以下列:
Groupname
Groupid
Groupurl
我想这样称呼它:
$arrayname[groupname][1];
我已经形成了 2 个数组,它们是:
$colnames 包含来自特定 mysql 查询的所有列和
$$colname是列名的变量变量,包含每一列的所有数据。例如:$groupurl 是一个包含该列中所有数据的数组。
我似乎无法获得一个循环来将数组作为多维对象加入,虽然我可以为特定表手动执行此操作,但它是一个类函数,变量变量部分让我崩溃=\
================感谢IMSoP给我的想法,解决方案是==================
函数中的$result是一个成功的MySQL查询表。
function tableAsMatrix($result)
{
//declare $results as array for use in loop
$results = array();
//this gets all the col names and sets them as $colnames[]
while( $cols = $result->fetch_field() )
{
$colnames[] = $cols->name;
}
//this loops through and assigns all cols as multidimensional $results[colname][id]
foreach ($colnames as $fields)
{
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
foreach($colnames as $field)
{
$results[$field][] = $row[$field];
}
}
}
//return to object
return $results;
}
【问题讨论】:
-
“变量变量”
$$colname从何而来?为什么你不能简单地填充$return[$colname]? -
感谢 IMSoP,他给了我这个想法,我在原帖中提出了以下内容!
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
除了选择数组类型,其他都是基于mysqli OO的,你只是看不到类的其余部分。代码已修复。我不知道你从哪里得到它是或不是 mysqli 的想法?
标签: php mysql arrays multidimensional-array