显示我可以从阵列中拉出这些吗?

时间:2012-12-16 23:34:37

标签: php arrays pdo

我在从这个多维数组中拉出元素时遇到了麻烦?

以下是我的代码:

$ShowTables = $Con->prepare("SHOW TABLES");
$ShowTables->execute();
$ShowTResults = $ShowTables->fetchAll();

如果我print_r($ShowTResults);我得到了这个多维数组:

Array (
    [0] => Array ( [Tables_in_alltables] => userinformation [0] => userinformation )
    [1] => Array ( [Tables_in_alltables] => users           [0] => users ) 
) 

加载Foreach新表,它会添加数组的另一个维度。我想将每个表名从多维数组中拉出一个新的数组,我可以将其用于未来的计划。

有人会有任何想法吗?

我试过1 foreach循环;但这没有任何正义。

2 个答案:

答案 0 :(得分:0)

我尝试过的解决方案:也许不像其他人那样做,这是完全尊重的。但这是我的:

$DatabaseTables = array();
foreach($ShowTResults AS $ShowTResult)
{
   foreach ($ShowTResult AS $ShowT)
 {
   $DatabaseTables[] = $ShowT;
 }
}
$DatabaseTables = array_unique($DatabaseTables); //Deletes Duplicates in Array
unset($ShowTResult);
unset($ShowT); // Free up these variables
print_r($DatabaseTables);

答案 1 :(得分:0)

您想以数组的形式获取第一列的所有结果:

$ShowTResults = $Con->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN, 0);
print_r($ShowTResults);

这会给你:

Array (
    [0] => userinformation
    [1] => users
) 

我认为这就是你要找的东西。

另一个变体(稍微复杂,但适合类似但很少不同的情况)是将结果作为函数(PDO::FETCH_FUNC)获取并直接映射结果:

$ShowTResults = $ShowTables->fetchAll(PDO::FETCH_FUNC, function($table) {
    return $table;
});