我正在构建一个具有相当大(10K行)参考表的Web应用程序。
表引用有一个类别,id,description。
因为我正在使用这个引用数据来填充下拉框等等,我正试图将它们放在数组中。我首先将它们放在一个大型数组中,但在我看来,在参考表中每个类别都有一个数组效率更高。
创建了动态变量名称,但是从另一个数组填充它们不起作用。
$r_refcats = mysqli_query($global_dbh,"select distinct(cat) from reference");
while(($row = mysqli_fetch_array($r_refcats)) != false){ $$row[0]=array();};
$r_references = mysqli_query($global_dbh,"select cat,id,description from reference");
while(($row = mysqli_fetch_array($r_references)) != false) { $$row[0]=array($row);}
因为我不能在最后一行使用$$row[0][]
,所以它会覆盖相同的值:)
有关如何正确执行此操作的任何提示?
答案 0 :(得分:0)
array_push()
怎么样,它应该像[]
一样对待它:
while(($row = mysqli_fetch_array($r_references)) != false) {
//$$row[0]=array($row)
array_push($$row[0],array($row));
}
答案 1 :(得分:0)
您需要添加到数组中,而不仅仅是重写它:
$r_refcats = mysqli_query($global_dbh,"select distinct(cat) from reference");
while(($row = mysqli_fetch_array($r_refcats)) != false) {
${$row[0]}=array();
}
$r_references = mysqli_query($global_dbh,"select cat,id,description from reference");
while(($row = mysqli_fetch_array($r_references)) != false) {
${$row[0]}[] = $row;
}
另外,我认为您只想使用$row
作为数组,而不是$row
数组。换句话说,我认为您希望数据是$row
中的数据,而不是array(0=>$row)
- 因此我对最后一行进行了编辑。