PHP에서 배열은 다양한 유형의 데이터를 저장할 수 있고 추가, 삭제, 수정 및 쿼리와 같은 기본 작업을 수행할 수 있는 매우 일반적인 데이터 유형입니다. 배열 요소를 삭제해야 할 경우 unset 함수를 사용하여 이를 달성할 수 있습니다. 그런데 삭제된 요소가 다음에 배열에 다시 나타나는 경우가 있습니다. 이유는 무엇입니까?
사실 PHP의 배열은 연관배열이기 때문에 각 요소마다 해당하는 키 값이 있고, unset 함수는 해당 값만 삭제하는데 키는 여전히 존재하므로 다음에 통과하면 이 키가 배열에 다시 표시되지만 해당 값은 비어 있습니다.
그렇다면 실제로 이 요소를 어떻게 삭제할 수 있을까요? array_values 함수를 사용하면 키가 0부터 시작하여 계속 증가하도록 배열 키의 순서를 재정렬할 수 있습니다. 이렇게 하면 이전에 삭제된 요소가 다시 나타나지 않습니다.
샘플 코드는 다음과 같습니다.
$arr = array('apple', 'banana', 'orange'); unset($arr[1]); // 删除元素 $newArr = array_values($arr); // 重新排列键 print_r($newArr);
출력 결과:
Array ( [0] => apple [1] => orange )
위에 표시된 것처럼 array_values 함수를 사용하면 삭제된 요소가 다시 나타나지 않도록 키를 재배열할 수 있습니다.
array_values 함수는 요소 삭제 목적을 달성할 수 있지만 배열 키의 재배열을 유발하여 이전 코드 로직에 영향을 줄 수 있으므로 사용 시 주의 깊게 고려해야 합니다. .
또한 PHP 7 이상에서는 새로운 함수 array_filter를 사용하여 배열 요소를 삭제할 수 있습니다. 이 함수는 삭제된 요소가 표시되지 않는 새 배열을 반환합니다. 사용 예는 다음과 같습니다.
$arr = array('apple', '', 'banana', 'orange'); $newArr = array_filter($arr); // 过滤掉为空的元素 print_r($newArr);
출력 결과:
Array ( [0] => apple [2] => banana [3] => orange )
원본 배열의 키 순서를 변경하지 않고 array_filter 함수를 통해 배열의 빈 요소를 필터링하므로 실용성이 있습니다.
간단히 말하면, PHP에서 배열 요소를 삭제하려면 unset 함수나 array_filter 함수를 사용하면 됩니다. 하지만 불필요한 문제를 피하기 위해 키 순서에 주의해야 합니다.
위 내용은 PHP에서 삭제한 배열이 다음에 표시되지 않으면 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!