(PHP/MySQL)将数据库结果转换为数组的问题

(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

背景:我有一个类似这样的数据库

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

这是写的

$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>';

}