Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多维数组的集值_Php_Mysql_Arrays - Fatal编程技术网

Php 多维数组的集值

Php 多维数组的集值,php,mysql,arrays,Php,Mysql,Arrays,我目前正在将fileID添加到idarray[],然后执行foreach。但是除了fileID之外,我还需要数组和foreach中的serverID和id,我该如何做呢?因此,基本上我需要了解如何向数组中再添加2个值,然后在foreach中使用这些额外的值 $result = mysql_query("SELECT * FROM redundfiles WHERE removed=1"); while($row = mysql_fetch_array($result)) { $i

我目前正在将fileID添加到idarray[],然后执行foreach。但是除了fileID之外,我还需要数组和foreach中的serverID和id,我该如何做呢?因此,基本上我需要了解如何向数组中再添加2个值,然后在foreach中使用这些额外的值

$result = mysql_query("SELECT * FROM redundfiles WHERE removed=1");
while($row = mysql_fetch_array($result))
{
        $idarray[] = $row['fileID'];
}

foreach ($idarray as $value)
{
    $result = mysql_query("SELECT * FROM redundfiles WHERE fileID=$value AND removed=0 AND serverID=$XXXserverIDhereXXX");
    while($row = mysql_fetch_array($result))
    {
        $sql = "DELETE FROM redundfiles WHERE id='".$XXXidhereXXX."' ";
        mysql_query($sql) or die(mysql_error());
    }
}

为什么不将整行存储到一个数组中呢

$rowarray[] = array();
$result = mysql_query("SELECT * FROM redundfiles WHERE removed=1");
while($row = mysql_fetch_array($result))
{
        $rowarray[] = $row;
}

foreach ($rowarray as $row)
{
    $fileid = $row['fileID'];
    $serverid = $row['serverID'];
    $result = mysql_query("SELECT * FROM redundfiles WHERE fileID=$fileid AND removed=0 AND serverID=$serverid");
    while($row = mysql_fetch_array($result))
    {
        $sql = "DELETE FROM redundfiles WHERE id='".$XXXidhereXXX."' ";
        mysql_query($sql) or die(mysql_error());
    }
}

但实际上,你的整个代码都是一团糟。使用s可以更有效地实现这一点。

您的意思是像
$idarray[]=array($row['fileID'],$row['serverID'],…)?哦,上帝。三个嵌套查询?你需要看一看。另外,如果我们坚持使用上面的代码,您将需要使用
for()
循环,而不是
foreach()
@Felix,这将如何影响我的foreach循环?它会变成$value[1]$value[2]等吗?MYSQL的加入让我非常困惑,因为我的空间能力非常差。我不想搞乱愚蠢的数组问题,我很好奇你的查询,你对这一对的期望是什么:从redundfiles中选择*删除=1,从redundfiles中选择*删除=0,fileID=$fileID?这对我来说毫无意义。您的第二个查询将不返回任何结果。你的算法是什么?我相信它只需要一个查询,不需要循环、数组和所有这些信息。是的,
$value
将是一个数组(数组索引以
0
开头)。谢谢,我甚至不知道这是可能的!你忘了一句重要的话