是否可以在嵌套循环中再次循环数组并更改数组?
我有一个URL的数组,其中包含URL或域的条目(作为数组键):example.com
如果是此条目:domain:example.com我想删除包含example.com的所有URL作为域:
foreach (array_keys($urls1) as $line) {
if (preg_match('/domain:(.*)/i', $line, $matches)) {
$domain = $matches[1];
foreach (array_keys($urls1) as $line2) {
if ($url_domains[$line2] == $domain) {
unset($urls1[$line2]);
}
}
}
}
答案 0 :(得分:0)
我遇到了类似的问题,制作阵列的副本就是答案。这是我的问题:
如果特定文本字符串存在于文件的开头,并且(大约80个成员的数组)在文件末尾匹配一个字符串,我必须删除三行到最后。我没有使用副本时发生的问题是索引将从30重置为9,这导致了一些问题。
这对我有用。
$rowCopy = $row
foreach($row as $index => &$line) {
////previous code
if ($line[0] === "NM1" && $line[1] === "77") {
//read through the $row array and find the NM*85 string
foreach ($rowCopy as $index2 => $lineT) {
if ($s = strpos($lineT, "NM1*85") !== false) {
$npiTest = explode("*", $lineT);
if (strcmp(preg_replace("/[^0-9,.]/", "", $npiTest[9]), $line[9]) === 0) {
// $line = false;
$index--;
unset($row[$index + 1]);
$index++;
unset($row[$index + 1]);
$index++;
unset($row[$index + 1]);
$erased = $erased + 3;
$index++
}
}
}
}
}