(PHP/MySQL)将数据库结果转换为数组的问题
背景:我有一个类似这样的数据库 TITLE ANDROID OS X WINDOWS World of Goo 1 1 1 Superman 64 GOTY Edition 0 1 1 Seinfeld: The Game 1 0 1 以此类推,只需列出标题可用于哪些平台 问题:根据我使用的解决方案,我要么使用Windows Android,要么使用Windows、AndroidWindows、AndroidWindows、AndroidWindows、AndroidWindows、Android 这是写的(PHP/MySQL)将数据库结果转换为数组的问题,php,Php,背景:我有一个类似这样的数据库 TITLE ANDROID OS X WINDOWS World of Goo 1 1 1 Superman 64 GOTY Edition 0 1 1 Seinfeld: The Game 1 0
$q = mysqli_query($c,"SELECT * FROM GAMES");
while ($row = mysqli_fetch_assoc($q)) {
$platforms = array();
foreach ($row AS $column => $value) {
if ($column == "Name") {
echo "<br />" . $value;
continue;
}
if ($value == 1) {
array_push($platforms,$column);
}
if (count($platforms)) {
print_r($platforms);
}
}
}
此代码的目的是
循环一行中的每个项目。
如果您所在的单元格是名称,则回显它。
如果您所在的手机中有1,那么我们拥有该平台的游戏,因此将该平台的名称存储在数组中。
在行的末尾,向我显示该数组。
现在的问题是:如果我执行那段代码,数组就完全成形了,但我没有得到一个数组,我的数据库中每列得到一个数组,所以它只是一次又一次地回显平台
如果我移动第3行$platforms=array;进入foreach循环,那么这个问题就避免了,但是我没有得到一个完全形成的数组,我为每个平台得到一个单独的数组
所以。。。我应该把那条线放在哪里?我在管理平台阵列的方式上弄乱了一些简单的东西,但我没有足够的智慧或经验来理解它。任何帮助都会很棒。这会解决您的问题
while ($row = mysqli_fetch_assoc($q)) {
$platforms = array();
echo $row['TITLE'];
foreach($row as $column => $val):
$val == 1 ? $platforms[] = $column:;
endforeach;
echo '<pre>', print_r($platforms, true) ,'</pre>';
}
平台应该是一个多维数组。在while$row=mysql_uu调用中,您将添加$platforms[$name]=array,然后在foreach循环中添加平台;数组_push$platforms[$name],$column;
while ($row = mysqli_fetch_assoc($q)) {
$platforms = array();
echo $row['TITLE'];
foreach($row as $column => $val):
$val == 1 ? $platforms[] = $column:;
endforeach;
echo '<pre>', print_r($platforms, true) ,'</pre>';
}