将mysql数据库表名添加到php数组中

时间:2014-12-02 21:29:31

标签: php mysql arrays

我需要编写一些代码来遍历我在数据库中的整个表列表,所以首先我需要获取所有表的列表并将它们添加到数组中。

我尝试使用此代码执行此操作:

include('./db.php');

$dataList = array();
$showTable = "SHOW TABLES from databaseA";
$getData = mysqli_query($con, $showTable);
while ($row = mysqli_fetch_row($getData)) {
    $dataList[] = $row;
    print_r($row); 
    }

我的结果显示为:

Array
(
    [0] => Array
        (
            [0] => Dave
        )
[1] => Array
    (
        [0] => Bob
    )

[2] => Array
    (
        [0] => Chris
    )

[3] => Array
    (
        [0] => Matt
    )
}

但如果我使用echo $dataList[0];echo $dataList[1];,我只会自己获得array这个词。

我不确定我在这里做错了什么......

然后我需要使用这个来构建一个php for循环,我最初的想法是做这样的事情:

for ($i=0; $i <= count($dataList); $i++) {}

但是因为我错误地定义了数组而无法正常工作....

4 个答案:

答案 0 :(得分:4)

您正在构建一个数组数组:

$data[] = $row;
           ^---array
     ^---push onto another array

你需要

$data[0][0] -> Dave
$data[1][0] -> Chris
etc...

var_dump($data)会告诉你这个。在字符串上下文中回显数组将为您提供单词Array - PHP不会为您字符串化数组。

答案 1 :(得分:1)

print_r移到While语句之外并打印$datalist而不是$ row

include('./db.php');

$dataList = array();
$showTable = "SHOW TABLES from databaseA";
$getData = mysqli_query($con, $showTable);
while ($row = mysqli_fetch_row($getData)) {
   $dataList[] = $row;
}

print_r($dataList); 

答案 2 :(得分:1)

@Marc B是对的。但我想以其他方式展示(可能是,技巧):

 $dataList = array_reduce($dataList, 'array_merge', array());
 foreach($dataList as $name){
      echo $name;
 }
 // Dave
 // Bob
 // Below

在上面的代码中 - 在2D数组中“展开第一级数组”。

答案 3 :(得分:0)

如果它回显单词array,则表示它是一个数组。

尝试

print_r($dataList);

这可能是一个数组数组。