php函数返回包含数组的sql结果,作为数组

mrp*_*atg 2 php mysql arrays foreach

所以我有一个问题(显然).我有以下MySQL表数据

7   USER1       1,1,1,10,1      The Guys Team   8,7,13,14,16
8    USER1      1,1,1,10,1  The Girls Team  7,12,15
10  USER1       1,1,1,10,1  Dog Team    8,7,14,15
Run Code Online (Sandbox Code Playgroud)

我写了一个函数来检索数据,然后返回它.

function ShowSetTeams($coach){
    $result = mysql_query("SELECT * FROM `teams` WHERE coach = '$coach'") or trigger_error(mysql_error()); 
    while($row = mysql_fetch_array($result)){ 
        foreach($row AS $key => $value) { $row[$key] = stripslashes($value); } 
            $id = $row['id'];
            $teamname = $row['teamname'];
            $team = $row['team'];
            $event = $row['event'];
            $push .= array($id, $teamname, $team, $event);
    }
    return $push;
}
Run Code Online (Sandbox Code Playgroud)

当我调用该函数时,如下所示

$info = ShowSetTeams("USER1");
Run Code Online (Sandbox Code Playgroud)

我明白了

ArrayArrayArray 
Run Code Online (Sandbox Code Playgroud)

我尝试回显$ info [0],$ info [1]和$ info [2],但得到了这个

Arr
Run Code Online (Sandbox Code Playgroud)

所以info数组中的每一行都是结果数组.我应该可以做$ info [0] [0]并获得第一个ID值,从第一个结果开始吧?

Fatal error: Cannot use string offset as an array
Run Code Online (Sandbox Code Playgroud)

我不知所措.如何获取返回数组的每个值?更重要的是,我怎么能对他们进行foreach操作,比如

foreach( $info as $key => $value){
$key[0] //ID
$key[1] //TEAMNAME
$key[2] //TEAM
$key[3] //EVENT
}
Run Code Online (Sandbox Code Playgroud)

Gre*_*reg 6

您正在使用字符串连接而不是数组表示法:

$push[] = array($id, $teamname, $team, $event);
Run Code Online (Sandbox Code Playgroud)

您也应该$push = array();在开始使用之前进行初始化.

你也做了很多额外的工作......你可以这样做:

function ShowSetTeams($coach)
{   
    $push = array();
    $result = mysql_query("SELECT id, teamname, team, event FROM `teams` WHERE coach = '$coach'") or trigger_error(mysql_error());
    while($row = mysql_fetch_array($result, MYSQL_NUM))
    {
        // I doubt you actually need to run stripslashes on your data...
        $row = array_map('stripslashes', $row);
        $push[] = $row;
    }

    return $push;
}
Run Code Online (Sandbox Code Playgroud)

除非你必须这样做,否则我不会将它重新键入数字索引数组 - 你只是在后面的代码中更难理解.使用mysql_fetch_assoc()要做到这一点