在PHP中,如何更正数组中缺少的键?

在PHP中,如何更正数组中缺少的键?,php,arrays,Php,Arrays,使用后,将删除没有重复值的数组。但是,似乎也删除了关键点,这会在具有数字索引的数组中留下间隙(尽管对于关联数组来说这很好)。如果我使用for循环进行迭代,我必须考虑缺少的索引,只需将键复制到一个新数组,但这似乎很笨拙将为数组重新编号,而不是使用for循环,听起来您应该使用foreach循环。显然,您根本不关心索引,因为您正在对它们重新编号 此循环: for ($i = 0; $i < $loopSize; $i++) { process($myArray[$i]); } 在我尝试使用fo

使用后,将删除没有重复值的数组。但是,似乎也删除了关键点,这会在具有数字索引的数组中留下间隙(尽管对于关联数组来说这很好)。如果我使用for循环进行迭代,我必须考虑缺少的索引,只需将键复制到一个新数组,但这似乎很笨拙将为数组重新编号,而不是使用for循环,听起来您应该使用foreach循环。显然,您根本不关心索引,因为您正在对它们重新编号

此循环:

for ($i = 0; $i < $loopSize; $i++)
{
process($myArray[$i]);
}

在我尝试使用for代替foreach的少数情况下,我很快就后悔了

它确实总是可以避免的,您甚至可以使用foreach,但忽略值并使用键,几乎忘记它是foreach而不是for,但可以避免键中的任何间隙,并自动处理边界,而无需使用length/min/max函数或任何函数

我发现这对于并行阵列特别有用

$a = getA(); $b = getB();
foreach($a as $key=>val)
{
    $sql = "INSERT INTO table (field1, field2) VALUES ($a[$key], $b[$key])";
}

哇!我读了数组函数列表,但完全没有读到。谢谢
foreach($myArray as $key=>$val)
{
     myArray[$key] = myFunction(myArray[$key]);
}
$a = getA(); $b = getB();
foreach($a as $key=>val)
{
    $sql = "INSERT INTO table (field1, field2) VALUES ($a[$key], $b[$key])";
}