Php 多维数组的集值
我目前正在将fileID添加到idarray[],然后执行foreach。但是除了fileID之外,我还需要数组和foreach中的serverID和id,我该如何做呢?因此,基本上我需要了解如何向数组中再添加2个值,然后在foreach中使用这些额外的值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
$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
开头)。谢谢,我甚至不知道这是可能的!你忘了一句重要的话