我需要编写一些代码来遍历我在数据库中的整个表列表,所以首先我需要获取所有表的列表并将它们添加到数组中。
我尝试使用此代码执行此操作:
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++) {}
但是因为我错误地定义了数组而无法正常工作....
答案 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);
这可能是一个数组数组。