PHP의 배열에서 요소를 삭제하는 방법은 무엇입니까?

6761 단어
안녕하세요, 저는 니코입니다.

저는 런던에 본사를 둔 티켓 브로커의 수석 엔지니어입니다.

사무실에서! 일상적인 사무실 생활에서 제가 하고 있는 기술적인 일에 대해 계속 일기를 쓰는 매일의 (거의) 포스팅 루틴입니다.

단일 배열 요소 삭제



배열 요소를 삭제하는 다양한 방법이 있습니다.

일부는 다른 것보다 특정 이유로 더 실용적입니다.

설정 해제()



배열의 한 요소만 삭제하려면 unset 메소드를 사용할 수 있습니다.

unset()을 사용하면 배열 키가 변경되지 않습니다.

키를 다시 인덱싱하려면 unset() 다음에 array_values()를 사용할 수 있습니다.

모든 키를 0부터 시작하여 숫자로 열거된 키로 변환합니다.

$nations = [0 => "Italy", 1 => "UK", 2 => "Spain"];
unset($nations[1]);
// It becomes[ [0] => Italy [2] => Spain]


unset() 메서드는 배열을 참조로 사용합니다.\
이것이 의미하는 바는 해당 함수의 반환 값을 배열에 다시 제공하지 않고 대신 자동으로 수행된다는 것입니다.

array_splice()



array_splice()를 사용하려는 경우 키가 자동으로 다시 인덱싱됩니다. 연관 키는 모든 키를 숫자 키로 변환하는 array_values()와 달리 변경되지 않습니다.
array_splice()는 키가 아닌 오프셋을 두 번째 매개변수로 요구합니다.

$nations = [0 => "Italy", 1 => "UK", 2 => "Spain"];

array_splice($nations, 1, 1);
// It becomes[[0] => Italy [2] => Spain]


array_splice() 메서드도 배열을 참조로 사용합니다.

여러 요소를 삭제하는 방법은 무엇입니까?



한 번에 여러 요소를 삭제하려면 array_diff() 또는 array_diff_key() 함수를 사용해야 합니다.

선택은 삭제해야 하는 요소의 값 또는 키를 알고 있는지 여부에 따라 다릅니다.

array_diff()



삭제하려는 배열 요소의 값을 알고 있으면 array_diff()를 사용할 수 있습니다.

unset() 이전과 마찬가지로 배열의 키를 변경하지 않습니다.

$nations = [0 => "Italy", 1 => "UK", 2 => "Spain", 3 => "Portugal", 4 => "Spain"];
$nations = array_diff($nations, ["Italy", "Spain"]);
// It becomes[[1] => UK [3] => Portugal]


array_diff_key()



대신 제거하려는 요소의 키만 알고 있는 경우 array_diff_key()를 사용합니다.
이 경우 키를 값이 아닌 두 번째 매개변수의 키로 전달합니다.\
다시 키는 색인을 다시 생성하지 않습니다.

$nations = [0 => "Italy", 1 => "UK", 2 => "Spain"];
$nations = array_diff_key($nations, [0 => "Portugal", "2" => "Germany"]);
// It becomes[[1] => UK]


동일한 값을 가진 많은 요소를 삭제하기 위해 여전히 unset() 또는 array_splice()를 사용할 수 있습니다.

이를 위해 array_keys()를 사용하여 특정 값에 대한 모든 키를 가져온 다음 모든 요소를 ​​삭제합니다.

array_filter()



고유한 값을 가진 모든 요소를 ​​제거하려면 array_filter()를 선택합니다.

$nations = [0 => "Italy", 1 => "UK", 2 => "Spain"];
$nations = array_filter($nations, static function ($element) { return $element !== "UK";});
// It becomes[[0] => Italy [1] => Spain]


값을 알고 있고 요소를 삭제할 키를 모른다면 array_search()를 사용하여 키를 얻을 수 있습니다.

가장 좋아하는 방법은 무엇입니까?



저는 1년 동안 다양한 경우에 많은 것을 사용했으며 unset()이 여전히 사용하기 더 쉽다고 생각합니다.

대신 작성하고 싶은 내용을 아래에 설명하십시오.

결론



저는 거의 10년 동안 웹 개발자였습니다.

런던 중심부에 위치한 세계적인 기업 및 수상 경력에 빛나는 마케팅 대행사와 협력합니다.

또한 블로그와 온라인 커뮤니티에 기사와 튜토리얼을 작성하고 기업이 온라인에서 입지를 구축하도록 돕습니다.

Click here to read more than 100+ of my blog post

(rizier123 덕분에)

좋은 웹페이지 즐겨찾기