0

我无法从这个多维数组中拉出元素?

下面是我的代码:

$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循环;但这不公平。

4

2 回答 2

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);
于 2012-12-16T23:39:38.497 回答
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;
});
于 2012-12-16T23:41:08.037 回答