PHP 数组总是有父 0 数组

标签 php mysql arrays

我在 PHP 中有一个数组。出于某种原因,我无法弄清楚它总是有一个键 [0] 的父数组。我不确定为什么会这样。我将数组作为 foreach 语句。显示的数据在数组中是正确的。我怎样才能得到这个数组:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [DB_ID] => 8umad0aqpt7re9
                    [Name] => Customers
                    [Record_Name] => Customer
                    [Description] => Customers Database
                    [Count] => 0
                )

            [1] => Array
                (
                    [DB_ID] => 37vcv0ab8hwtx9
                    [Name] => Estimates
                    [Record_Name] => Bid
                    [Description] => Estimates Database
                    [Count] => 0
                )

            [2] => Array
                (
                    [DB_ID] => 8nhenyhnh5tal9
                    [Name] => Customers
                    [Record_Name] => Customer
                    [Description] => Customers Database
                    [Count] => 0
                )

        )

)

到这个数组:

Array
(
            [0] => Array
                (
                    [DB_ID] => 8umad0aqpt7re9
                    [Name] => Customers
                    [Record_Name] => Customer
                    [Description] => Customers Database
                    [Count] => 0
                )

            [1] => Array
                (
                    [DB_ID] => 37vcv0ab8hwtx9
                    [Name] => Estimates
                    [Record_Name] => Bid
                    [Description] => Estimates Database
                    [Count] => 0
                )

            [2] => Array
                (
                    [DB_ID] => 8nhenyhnh5tal9
                    [Name] => Customers
                    [Record_Name] => Customer
                    [Description] => Customers Database
                    [Count] => 0
                )

)

我的PHP:

$user_id = DBMGR::Auth();

SQL::Query("SELECT * FROM `".USER_ROLES_TBL."` WHERE `".USER_ROLES_ID."` = :user_id;");
SQL::Bind(":user_id", $user_id);
$Allowed_Databases = SQL::Results();
$Allowed_Databases = Encryption::DecryptArray($Allowed_Databases);

$List_Databases = array();
$i = 0;
foreach($Allowed_Databases as $key => $db){
    SQL::Query("SELECT COUNT(*) FROM `" . $db[USER_ROLES_DB_ID] . "`.`".MAIN_TBL."`;");
    $count = SQL::Single();
    $count = $count['COUNT(*)'];

    SQL::Query("SELECT * FROM `main`.`".DATABASE_TBL."` WHERE `".DATABASE_ID."` = :db_id;");
    SQL::Bind(":db_id", $db[USER_ROLES_DB_ID]);
    $DB_Info = SQL::Single();
    $DB_Info = Encryption::DecryptSingleArray($DB_Info);

    $List_Databases[$i]['DB_ID'] = $DB_Info[DATABASE_ID];
    $List_Databases[$i]['Name'] = $DB_Info[DATABASE_NAME];
    $List_Databases[$i]['Record_Name'] = $DB_Info[DATABASE_RECORD_NAME];
    $List_Databases[$i]['Description'] = $DB_Info[DATABASE_DESCRIPION];
    $List_Databases[$i]['Count'] = $count;
    $i++;

}
echo "<pre>";
print_r($List_Databases);
echo "</pre>";

最佳答案

您需要像下面这样更改您的查询代码:-

 SQL::Query("SELECT COUNT(*) FROM `" . $db[USER_ROLES_DB_ID] . "`.`".MAIN_TBL."`;");

完整代码:-

$user_id = DBMGR::Auth();

SQL::Query("SELECT * FROM `".USER_ROLES_TBL."` WHERE `".USER_ROLES_ID."` = :user_id;");
SQL::Bind(":user_id", $user_id);
$Allowed_Databases = SQL::Results();
$Allowed_Databases = Encryption::DecryptArray($Allowed_Databases);

$List_Databases = array();

foreach($Allowed_Databases as $key => $db){
    SQL::Query("SELECT COUNT(*) FROM `" . $db[USER_ROLES_DB_ID] . "`.`".MAIN_TBL."`;");
    $count = SQL::Single();
    $count = $count['COUNT(*)'];

    SQL::Query("SELECT * FROM `main`.`".DATABASE_TBL."` WHERE `".DATABASE_ID."` = :db_id;");
    SQL::Bind(":db_id", $db[USER_ROLES_DB_ID]);
    $DB_Info = SQL::Single();
    $DB_Info = Encryption::DecryptSingleArray($DB_Info);
$new_array = array();//created new array inside foreach
    //assigning values to this array

    $new_array['DB_ID'] = $DB_Info[DATABASE_ID]; // REMOVE $i so that extra indexes will not made
    $new_array['Name'] = $DB_Info[DATABASE_NAME];
    $new_array['Record_Name'] = $DB_Info[DATABASE_RECORD_NAME];
    $new_array['Description'] = $DB_Info[DATABASE_DESCRIPION];
    $new_array['Count'] = $count;
    $List_Databases = array_push($List_Databases,$new_array[0]);// push it into resultant array
}
echo "<pre>";
print_r($List_Databases);
echo "</pre>";

注意:- 删除 foreach 循环中的 $i=0$i++;

关于PHP 数组总是有父 0 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29581814/

相关文章:

带有特殊字符的php mysql搜索

php - 使 SQLITE 触发器与 MYSQL 一起工作

java - 使用 JSTL 在 JSP 中遍历 JSONArray

php - 设置远程 beanstalkd Laravel 4.2

php - 文件下载期间,文件大小不会显示在 PHP 下载脚本中

mysql - SQLite 数据库可以容纳与 MySQL 数据库一样多的东西吗?

arrays - Swift 是否提供任何内置函数来返回附加到不可变数组的结果?

c++ - 如何在 C++ 中初始化 vector

php - SQL 查询返回错误结果

php mysql : delete a special character from the database