일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바스크립트
- 코딩
- 데이터구조
- 딥러닝
- 컴퓨터비전
- 머신러닝
- 프로그래밍
- 네트워크
- 데이터과학
- 빅데이터
- 데이터분석
- Yes
- 버전관리
- 컴퓨터공학
- 2
- 프로그래밍언어
- 클라우드컴퓨팅
- 자료구조
- 사이버보안
- 웹개발
- 네트워크보안
- 보안
- 파이썬
- 데이터베이스
- 인공지능
- 소프트웨어공학
- 알고리즘
- I'm Sorry
- 소프트웨어
- 컴퓨터과학
- Today
- Total
스택큐힙리스트
PHP에서 배열에서 요소를 삭제하는 방법 본문
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_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() 를 사용할 수 있습니다. 이전과 마찬가지로 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 = [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 = [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() 함수가 더 나은 선택일 수 있습니다.
이 방법을 사용하면, 배열에서 요소를 삭제하는 모든 작업이 쉬워지므로, 프로그램 개발에 매우 효과적입니다.