我在 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/