중첩 루프에서 배열을 다시 루프하고 배열을 변경해도 되나요? 이 항목의 경우 example.com동일한 배열에서 중첩 된 foreach 루프 사용
:
나는 URL 또는 도메인 중 하나의 (배열의 키와 같은) 항목이있는 URL의 배열을했습니다 도메인 : example.com 내가 예를 포함하는 모든 URL을 제거하려면 .COM 도메인으로 : 그 위에 두 번째 루프 아무 문제가 없습니다
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]);
}
}
}
}
확실히 반복해도 괜찮습니다. 그러나 나는 그걸 수정하는 것이 좋다고 확신하지 못합니다. –
['array_walk'] (http://php.net/array_walk) 또는 ['array_map'] (http://php.net/array_map)을하는 것이 더 나을 수도 있습니다. 이 코드가 제대로 작동하면 변경해야 할 이유가 없습니다. –
http://stackoverflow.com/questions/10057671/how-foreach-actually-works?rq=1 http://stackoverflow.com/questions/1685689/how-is-an-array-in- a-php-foreach-loop-read? rq = 1 http://stackoverflow.com/questions/2008866/unsetting-array-values-in-a-foreach-loop?rq=1 –