我是 php 的新手,但到目前为止我真的很喜欢它!
现在我偶然发现了 array_merge
的问题。
这是我的代码,它只是抓取我数据库中指定的每个表,然后将它变成一个大的 json 文件。:
$tables = array("buildings", "medical", "other", "tools", "traps", "weapons");
foreach ($tables as $table) {
// Get tables from database
$sth = $db->query("SELECT * FROM $table");
$result = $sth->fetchAll();
// Merge arrays together
if ($arr === null) {
//echo "its 0 <br/> ";
$arr = array( "$table" => $result );
} else {
//echo "more than 0 <br/> ";
$arr2 = array( "$table" => $result );
$merge = array_merge($arr, $arr2);
}
} //End loop
echo $merge;
到目前为止它以某种方式工作,我设法让第一个表“建筑物”和最后一个表“武器”以我想要的方式完美显示!
但我不明白为什么它会跳过其他的..
我相信它与 $arr2
有关,我需要为每个表指定一个唯一的数组。但我怎样才能做到这一点?这是要走的路还是有更有效的方法来实现这一目标?
谢谢!
最佳答案
由于这一行而失败
$merge = array_merge($arr, $arr2);
您的合并始终是 $arr($tables 中的第一个条目)和 $arr2(正在处理的最新条目)的合并。您没有将数据与之前合并的数据合并,例如
$arr = array_merge($arr, $arr2)
此外,您可以通过将 $arr 设置为空数组来开始,从而摆脱 if/else 逻辑。
$arr = array();
关于PHP:foreach 循环与 array_merge 来创建 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29825436/