Php 显示我可以从阵列中拉出每个吗?

Php 显示我可以从阵列中拉出每个吗?,php,arrays,pdo,Php,Arrays,Pdo,从多维数组中提取元素时遇到问题 下面是我的代码: $ShowTables = $Con->prepare("SHOW TABLES"); $ShowTables->execute(); $ShowTResults = $ShowTables->fetchAll(); 如果Iprint\r($ShowTResults)我得到这个多维数组: Array ( [0] => Array ( [Tables_in_alltables] => userinformat

从多维数组中提取元素时遇到问题

下面是我的代码:

$ShowTables = $Con->prepare("SHOW TABLES");
$ShowTables->execute();
$ShowTResults = $ShowTables->fetchAll();
如果I
print\r($ShowTResults)我得到这个多维数组:

Array (
    [0] => Array ( [Tables_in_alltables] => userinformation [0] => userinformation )
    [1] => Array ( [Tables_in_alltables] => users           [0] => users ) 
) 
在加载每个新表时,它会添加数组的另一个维度。我想把每个表名从多维数组中拉出来,放到一个新的数组中,我可以在未来的计划中使用它

有人有什么想法吗


我尝试了1
foreach
Loop;但这并没有起到公正的作用

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

$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);

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

$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;
});

我不明白这个查询/行的结构和含义——你能解释一下用法以及如何打印结果吗?打印结果:
print\r($ShowTResults)
同样,使用该SQL查询,您不需要
prepare()
(只执行一次,不涉及其他变量),因此您可以直接
query
。查看编辑后的答案。我认为准备可以防止可能的注射?@user1902584:是的。但是由于查询没有涉及任何变量,因此不可能进行注入。请注意,我刚刚编辑了答案,因为有一个更简单的方法。我现在把它放在上面了。这更适合您的情况,函数映射适用于更复杂的情况。