【问题标题】:Create multi dimensional array.创建多维数组。
【发布时间】:2014-04-24 05:08:40
【问题描述】:

如何从数据库结果集中在 PHP 中创建如下所示的数组。

Array (
 [0] => Array ( [id] => 1 [name] => Little Hacienda [is_open] => 0 [order] => 0 )
 [1] => Array ( [id] => 2 [name] => testcat [is_open] => 0 [order] => 0 )
 [2] => Array ( [id] => 3 [name] => fgf [is_open] => 0 [order] => 0 )
 )

我有以下代码,

$arr = array();
$r = mysql_query("SELECT * FROM categories WHERE id=".$key."");
    if (mysql_num_rows($r) > 0){
        $row = mysql_fetch_assoc($r);
        $f = mysql_num_rows($r);
        for($j = 0; $j < count($f); $j++){
            $arr[$j] = $row[$f[$j]['field']];               

        }
    }
         $test = array();
     array_push($test, $arr);
     return $test;

但这会返回数组

Array ( [0] => Array ( [0] => 1 [1] => Little Hacienda [2] => 0 [3] => 0 ) ) 

任何帮助将不胜感激..

【问题讨论】:

  • 你能print_r($row)吗?

标签: php arrays multidimensional-array associative-array


【解决方案1】:

你可以这样做:

$arr = array();
$r = mysql_query("SELECT * FROM categories WHERE id='".$key."'");
if (mysql_num_rows($r) > 0) {
    $row = mysql_fetch_assoc($r);
    $i = 0;
    while ($row = mysql_fetch_assoc($r)) {
        $arr[$i] = $row;
        ++$i;
    }
}
$test = array();
array_push($test, $arr);
return $test;

【讨论】:

  • 你甚至不需要柜台。你可以只做$arr[] = ,它会自动增加数组。
  • 此外,如果您因任何原因不能使用$arr[] = ,您实际上可以将$i++ 放在方括号中($arr[$i++] = $row;
【解决方案2】:

试试:

$arr = array();
while($row = mysql_fetch_assoc())
{
    $arr[] = $row;
}

但如果没有强制性的“You shouldn't be using a deprecated library”,我就不能离开。

Mysql 库已弃用,不应再使用。请考虑使用MySQL PDO(一个不错的OOP接口)或Mysqli library

【讨论】:

    猜你喜欢
    • 2011-08-19
    • 2013-04-21
    • 1970-01-01
    • 2014-11-03
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多