PHP mysqli_fetch_all结果嵌套在数组中

时间:2017-11-07 21:47:13

标签: php arrays mysqli

我正在尝试从数组中的某个数据库中获取所有表,因此我可以将它与另一个数据库进行比较。

//Get a list of all tables
$sql = "SHOW TABLES FROM Data;";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck == 0)
{
    exit("NO SQL RESULTS");
}

$array = mysqli_fetch_all($result);
print_r($array);

然而,当我这样做时,它会导致我得到一个数组,其结果嵌套在另一个数组中。

Array
(
    [0] => Array
        (
            [0] => table1
        )

    [1] => Array
        (
            [0] => table2
        )

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

    [3] => Array
        (
            [0] => table4
        )
)

有没有一种方法可以做到这一点,而不使用while循环和mysqli_fetch_assoc?

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

SELECT group_concat(table_name) as tables FROM information_schema.tables where table_schema='Data'

这将返回单个字段 ,其中包含所有表名的逗号分隔列表。

然后您可以使用:

$array = mysqli_fetch_array($result);
$tables = explode(",", $array['tables']);
print_r($tables);

将表名拆分为数组