스택큐힙리스트

PHP에서 배열에서 요소를 삭제하는 방법 본문

카테고리 없음

PHP에서 배열에서 요소를 삭제하는 방법

스택큐힙리스트 2023. 3. 13. 10:25
반응형

PHP를 사용하여 배열에서 요소를 쉽게 삭제하는 방법이 있습니까? 이렇게하여 foreach ($array)에 해당 요소가 더 이상 포함되지 않도록 할 수 있습니까?

null 로 설정하면 되길 생각했지만, 아마도 작동하지 않는 것 같습니다.

답변 1

배열 요소를 삭제하는 다른 방법이 있으며, 어떤 방법은 특정 작업에 더 유용할 수 있습니다.

하나의 배열 요소를 삭제하기

한 배열 요소만 삭제하려면 unset() 또는 대안으로 \array_splice()을 사용할 수 있습니다.

값을 알고 원소를 삭제할 키를 모른다면 \array_search() 를 사용하여 키를 얻을 수 있습니다. 이 방법은 원소가 중복되지 않을 경우에만 작동합니다. 왜냐하면 \array_search 는 첫 번째 항목만 반환하기 때문입니다.

unset()

unset()를 사용할 때 배열 키는 변경되지 않음에 유의하십시오. 키를 재색인하려면 unset() 이후에 array_values() aft를 사용할 수 있으며, 이는 모든 키를 0부터 시작하는 숫자로 열거 된 키로 변환합니다.

코드:

$array = [0 => a, 1 => b, 2 => c];

unset($array[1]);

// ↑ Key which you want to delete

한국어로 번역해주세요.

[

[0] => a

[2] => c

]

\array_splice() 방법

만약 \array_splice() 를 사용하면 키들은 자동으로 재색인됩니다. 그러나 연관되는 키들은 변경되지 않습니다. \array_values() 와는 다르게 모든 키들이 숫자형으로 변환됩니다.

\array_splice()는 두 번째 매개변수로 키가 아닌 오프셋이 필요합니다.

코드:

$array = [0 => a, 1 => b, 2 => c];

\array_splice($array, 1, 1);

// ↑ Offset which you want to delete

한국어로 번역하세요.

[

[0] => a

[1] => c

]

array_splice()는 unset()와 같이 배열을 참조로 가져옵니다. 이러한 함수의 반환 값을 배열에 할당하지 않습니다.

여러 배열 요소 삭제하기

여러 개의 배열 요소를 삭제하고 여러 번 unset() 또는 \array_splice() 를 호출하고 싶지 않다면, 삭제하려는 요소의 값 또는 키를 알고 있는 경우에 따라 함수 \array_diff() 또는 \array_diff_key() 를 사용할 수 있습니다.

\array_diff() 방법

만약 삭제하려는 배열 요소의 값을 알고 있다면, \array_diff() 를 사용할 수 있습니다. 이전과 마찬가지로 unset() 와 같은 방법으로 배열의 키를 변경하지 않습니다.

코드:

$array = [0 => a, 1 => b, 2 => c, 3 => c];

$array = \array_diff($array, [a, c]);

// └────────┘

// Array values which you want to delete

한국어로 번역하세요.

[

[1] => b

]

\array_diff_key() 방법

당신이 삭제하고 싶은 요소의 키를 알고 있다면, \array_diff_key()을 사용하고 싶을 것입니다. 두 번째 매개변수로 키를 값으로 전달하지 않고 키로 전달해야 합니다. 키는 색인을 다시 만들지 않습니다.

코드:

$array = [0 => a, 1 => b, 2 => c];

$array = \array_diff_key($array, [0 => xy, 2 => xy]);

// ↑ ↑

// Array keys which you want to delete

번역합니다:

[

[1] => b

]

만약 동일한 값의 여러 요소를 삭제하려면 unset() 또는 \array_splice()를 사용할 수 있으며, 특정 값에 대한 모든 키를 가져와 모든 요소를 삭제할 수 있는 \array_keys()를 사용할 수 있습니다.

\array_filter() 방법

만약 배열에서 특정 값의 모든 요소를 삭제하려면 \array_filter()을 사용할 수 있습니다.

코드:

$array = [0 => a, 1 => b, 2 => c];

$array = \array_filter($array, static function ($element) {

return $element !== b;

// ↑

// Array value which you want to delete

});

한국어로 번역합니다.

[

[0] => a

[1] => c

]

답변 2

PHP에서 배열에서 요소를 삭제하는 방법

PHP에서 배열은 여러 값을 저장하기 위한 유용한 데이터 구조입니다. 때로는 배열에 저장된 값을 삭제해야 할 때가 있습니다. 이를 위해 PHP는 다양한 방법을 제공합니다. 이 문서에서는 PHP에서 배열에서 요소를 삭제하는 방법에 대해 설명합니다.

1. unset() 함수 사용

PHP에서 가장 일반적으로 사용하는 방법은 unset() 함수를 사용하는 것입니다. 이 함수는 배열에서 지정된 요소를 제거합니다. unset() 함수는 삭제된 요소의 인덱스를 다시 사용할 수 있게 합니다.

예를 들어, 다음과 같은 배열이 있다고 가정해 봅시다.

$fruits = array(apple, banana, orange);

이제 banana 요소를 삭제하고 싶다면 다음과 같이 코드를 작성할 수 있습니다.

unset($fruits[1]);

이제 $fruits 배열은 다음과 같습니다.

Array ( [0] => apple [2] => orange )

2. array_splice() 함수 사용

또 다른 방법은 array_splice() 함수를 사용하는 것입니다. 이 함수는 배열에서 지정된 영역을 제거하며, 이동된 요소를 반환합니다.

예를 들어, 다음과 같은 배열이 있다고 가정해 봅시다.

$fruits = array(apple, banana, orange);

이제 banana 요소를 삭제하고 싶다면 다음과 같이 코드를 작성할 수 있습니다.

array_splice($fruits, 1, 1);

이제 $fruits 배열은 다음과 같습니다.

Array ( [0] => apple [1] => orange )

3. array_diff() 함수 사용

array_diff() 함수를 사용하여 배열에서 요소를 제거할 수도 있습니다. 이 함수는 첫 번째 배열에서 나머지 배열에 포함된 요소를 제거합니다.

예를 들어, 다음과 같은 배열이 있다고 가정해 봅시다.

$fruits = array(apple, banana, orange);

이제 banana 요소를 삭제하고 싶다면 다음과 같이 코드를 작성할 수 있습니다.

$fruits = array_diff($fruits, array(banana));

이제 $fruits 배열은 다음과 같습니다.

Array ( [0] => apple [2] => orange )

이상적으로, 배열에서 단일 요소를 삭제하는 것은 배열 크기 또는 성능에 큰 영향을 미치지 않는 한 무료입니다. 그러나 배열에서 여러 요소를 삭제해야 하는 경우 array_splice() 함수나 array_diff() 함수가 더 나은 선택일 수 있습니다.

이 방법을 사용하면, 배열에서 요소를 삭제하는 모든 작업이 쉬워지므로, 프로그램 개발에 매우 효과적입니다.

반응형
Comments