배열에서 짝수 요소를 제거합니다. PHP 배열에서 요소 제거

배열 작업 및 배열 작업을 위한 함수(2부)

배열 병합

배열 병합(연결)은 여러 다른 배열의 요소로 구성된 배열을 만드는 작업입니다. 배열 병합은 매우 위험한 작업입니다. 병합 결과는 자체 논리에 따라 달라지므로 어느 것이 데이터 손실로 이어질 수 있는지 잊어버리기 때문입니다. 배열 병합은 " 연산자를 사용하여 구현됩니다. + " 또는 기능을 사용하는 경우 병합은 기능을 통해서만 수행할 수 있습니다. 배열_병합().

두 개의 배열이 있다고 가정해 보겠습니다.

$A = array("1"=>"첫 번째", "2"=>"두 번째");
$B = array("3"=>"세번째", "4"=>"네번째");

이제 이 두 배열을 하나의 배열로 병합해 보겠습니다. $C:

운영자 " + "는 배열에 대해 교환 가능하지 않습니다. 이는 다음을 의미합니다. $A + $B같지 않다 $B + $A.

고려한 예의 결과로 배열을 받게 됩니다. $C다음과 같은 형식입니다:

"1"=>"첫 번째", "2"=>"두 번째", "3"=>"세 번째", "4"=>"네 번째"

그리고 그 결과 $B + $A우리는 다음 배열을 얻을 것입니다:

"3"=>"세번째", "4"=>"네번째", "1"=>"첫번째", "2"=>"두번째"

목록을 병합할 때는 이 방법이 작동하지 않습니다. 예를 들어 이 사실을 설명해보자:

두 개의 배열이 있다고 가정해 보겠습니다.

$A = 배열(10,11,12);
$B = 배열(13,14,15);

목록을 병합한 결과 $A그리고 $B ($A + $B) 우리는 10,11,12를 얻습니다. 그리고 이것은 우리가 얻고자 했던 결과가 전혀 아닙니다... 이는 동일한 인덱스를 가진 목록을 병합할 때 첫 번째 배열의 요소가 결과 배열의 동일한 위치에 남아 있다는 사실 때문입니다. 이 경우에는 다음 기능을 사용해야 합니다.

기능 사용 예 세다():

$arr = 5 ;
$arr = 4 ;
$arr = 8 ;
$arr = 3 ;
$arr = 8 ;
에코 "

배열 요소 수: ". 카운트($arr). "

" ;
// 출력: 배열 요소 수: 5
?>

배열 및 해당 요소 제거

전체 배열을 제거하려면 다음 기능을 사용하십시오. 설정되지 않음().

키/값 쌍을 제거하려면 다음 기능을 사용할 수도 있습니다. 설정되지 않음(). 구체적인 예는 다음과 같습니다.

$arr = 배열(5 => 1, 12 => 2);

$arr = 56 ; // 스크립트의 이 시점에서 이것은 다음과 같습니다.
// $arr = 56과 동일;

$arr["x"] = 42; // 배열에 새로운 것을 추가합니다.
// 키가 "x"인 요소
PHP 포털 포럼. S.U.

이 문제는 여러 가지 방법으로 해결될 수 있습니다.

방법 1. 홀수 요소만 다른 배열에 복사합니다.

const N = 20 ;<>var a, b: 정수 배열 [1 .. N ];

나, m: 바이트 ;

무작위 시작; for i: = 1 ~ N do start a[ i] : = random(40 ) + 10 ;

쓰기 (a[ i] : 3 ) ;<= m do if a[ i] mod 2 = 0 then begin m : = m- 1 ; for k: = i to m do a[ k] : = a[ k+ 1 ] ; end else i : = i+ 1 ; for i: = 1 to m do write (a[ i] : 3 ) ; writeln ; end .

끝 ; 쓰다;

m := 0 ;

for i: = 1 ~ N do if a[ i] mod 2

0 다음 시작 m : = m + 1 ; b[m] : = a[i] ;끝 ; for i: = 1 to m do start write (b[ i] : 3 ) ; 끝 ; 쓰다;끝.<= m do if a[ i] mod 2 = 0 then begin for j : = i to m- 1 do a[ j] : = a[ j+ 1 ] ; m : = m - 1 end else i : = i + 1 ; SetLength(a, m+ 1 ) ; 이는 원래 배열을 압축할 필요가 없으므로 배열 요소(이 경우 짝수)를 제거하는 가장 쉬운 방법입니다. 위에 제시된 문제에 대한 해결책에서 변수 m은 발견된 홀수 요소의 수를 저장하는 동시에 두 번째 배열을 채울 때 요소의 변경 인덱스입니다.방법 2.

현재 배열의 짝수 요소를 삭제하고 오른쪽에 있는 홀수 요소로 덮어씁니다.

const N = 10 ;

var a: 정수 배열 [1 .. N ];

i, k, m: 바이트 ;

X[ 5 ] : =X [ 6 ];

따라서 세 번째부터 다섯 번째까지의 모든 요소는 왼쪽으로 1씩 이동해야 합니다. i번째 요소 대신 (i+1)-th를 써야 합니다. 알고리즘의 블록 다이어그램은 그림 1에 나와 있습니다. 5.25.


쌀. 5.25.


쌀. 5.26.


쌀. 5.27.

이제 좀 더 일반적인 문제를 생각해 보겠습니다. n개의 요소로 구성된 배열 X에서 m번째 요소를 제거해야 합니다. 이렇게 하려면 숫자가 m인 요소 대신에 (m+1)번째 요소를 쓰고, (m+1)번째 요소 대신에 (m+2)번째 요소를 쓰는 식으로 충분합니다. , n번째 요소 - (n–1)번째 위치에 있습니다. 배열에서 요소를 제거하는 과정은 그림 1에 나와 있습니다. 5.26.

n 차원의 배열 X에서 번호 m의 요소를 제거하는 알고리즘이 그림 1에 나와 있습니다. 5.27.

요소 4를 제거한 후 실제로 배열의 일부를 한 요소 왼쪽으로 이동하면배열에서 배열의 요소 수가 변경되고(1씩 감소) 일부 요소의 인덱스가 변경됩니다. 요소가 삭제되면 다음 요소가 그 자리를 차지하며 해당 요소로 이동할 필요가 없습니다(인덱스를 1씩 증가). 다음 요소 자체는 제거된 후 왼쪽으로 이동했습니다.

일부 요소가 삭제된 배열을 처리하는 경우 요소를 삭제한 후 다음 요소로 이동할 필요가 없습니다(이렇게 하면 요소 수가 줄어듭니다). 예를 들어, 다음 문제를 고려해보세요.

과제 5.1. 배열에서 음수 요소를 제거합니다.

문제를 해결하기 위한 알고리즘은 매우 간단합니다. 배열의 모든 요소를 ​​살펴보고 요소가 음수이면 모든 후속 요소를 왼쪽으로 하나씩 이동하여 삭제합니다. 기억할 가치가 있는 유일한 점은 요소를 삭제한 후 후속 처리를 위해 다음 요소로 이동할 필요가 없으며 요소 자체가 현재 요소의 위치로 이동한다는 것입니다. 문제 5.1을 해결하기 위한 블록 다이어그램은 그림 1에 나와 있습니다. 5.28.

아래는 코멘트가 포함된 프로그램의 텍스트입니다.

프로그램 support_array; var i, n, j: 바이트; X: 실수 배열 [ 1.. 100 ];<=n) do {Если очередной элемент массива X[i] отрицателен, то} if x [ i ]<0 then begin {удаляем элемент массива с номером i.} for j:= i to n_1 do x [ j ] : = x [ j + 1 ]; {Уменьшаем размер массива.} {Не надо переходить к следующему элементу массива.} n:=n -1; end else {Если элемент не удалялся, то переходим к следующему элементу массива.} i:= i +1; writeln (’Изменённый массив ’); for i:=1 to n do {Вывод преобразованного массива.} write (X[ i ] : 5: 2, ’ ’); writeln; end.


writeln('배열 크기를 입력하세요'); readln(n); (배열 입력.) for i:=1 to n do start write ('X[ ’, i, ’ ]= ’); readln(X[i]); 끝; writeln('배열 X'); for i:=1 to n do write (x [ i ] : 5: 2, ’ ’); 쓰다; 나는: = 1; 동안 (나는

쌀. 5.28.


프로그램의 결과는 그림 1에 나와 있습니다. 5.29.

쌀. 5.29.

5.9 배열에 요소 삽입하기

이 문제를 해결하려면 배열의 모든 요소를 ​​네 번째부터 시작하여 한 요소씩 오른쪽으로 이동해야 합니다. 그런 다음 배열의 네 번째 요소에 b (X:=b;)를 써야 합니다. 그러나 이웃 값을 잃지 않으려면 먼저 10번째 요소를 오른쪽으로 이동한 다음 9번째, 8번째 등을 네 번째 요소까지 이동해야 합니다. 삽입 알고리즘의 블록 다이어그램은 그림 1에 나와 있습니다. 5.30.


쌀. 5.30.

일반적인 경우, m과 m+1번 요소 사이의 배열 X(N)에 숫자 b를 삽입하는 블록 다이어그램이 그림 1에 나와 있습니다. 5.31.


쌀. 5.31.

다음은 이 알고리즘을 구현하는 프로그램 조각입니다. 5 배열을 선언할 때 요소 하나를 삽입할 만큼 충분한 크기를 제공해야 합니다. .

var i, n,m: 바이트;

X: 실수 배열 [ 1.. 100 ]; b: 진짜; 쓰기 시작('N=');

readln(n); i:=1 ~ n에 대해 write write ('X[ ', i, ' ]= '); readln(X[i]); 끝; writeln('배열 X'); for i:=1 to n do write (x [ i ] : 5: 2, ’ ’); 쓰다; writeln('m='); readln(m); writeln('b='); readln(b); for i:=n 아래로 m+1 do x [ i +1]:=x [ i ]; x :=b; n:=n+1; writeln('수정된 배열'); for i:=1 to n do write (X[ i ] : 5: 2, ’ ’); 쓰다; 끝. 5.10 루틴을 사용하여 배열 작업

서브루틴에 배열을 전달하는 방법을 살펴보겠습니다. 아시다시피(4장 참조) 서브루틴의 형식 매개변수 목록에서 변수를 선언하려면 해당 이름과 유형을 지정해야 합니다. 그러나 목록에 있는 매개변수의 유형은 표준 유형이거나 이전에 선언된 유형이어야 합니다. 따라서 서브루틴에 배열을 전달하려면 먼저 해당 유형을 설명해야 합니다. 6 배열 데이터 유형, 배열 선언은 섹션 2.4.9를 참조하십시오. 배열 작업은 이 장에서 자세히 설명합니다.그런 다음 절차를 선언하십시오. array_type =정렬

[색인_목록]

~의

유형;

절차

프로시저_이름(배열_이름: 배열_유형);

예를 들어: 유형 벡터=바이트 배열 [ 1.. 10 ]; 행렬=실수 배열 [ 1..3, 1..3 ]; 절차 proc(A: 행렬; b: 벡터; var x: 벡터);형식의 문자열을 서브루틴에 전달하는 것이 분명합니다.

변수_이름: [문자열_길이];

실제로는 7개의 배열입니다. 유형 벡터=바이트 배열 [ 1.. 10 ]; 행렬=실수 배열 [ 1..3, 1..3 ]; 절차 proc(A: 행렬; b: 벡터; var x: 벡터);형식의 문자열을 서브루틴에 전달하는 것이 분명합니다.

[색인_목록]

데이터 유형 "문자열", 문자열 선언 2.4.9절 참조

유형;

, 유사하게 수행되어야 합니다:

행_유형= "배열" 데이터 유형, 배열 선언, 배열 액세스는 섹션 2.4.9를 참조하세요., 설명은 구성 요소의 유형을 나타내지만 인덱스 변경에 대한 경계를 정의하지는 않습니다.

공개_배열_이름: 배열 배열...정렬

유형;

var array_1: 실수 배열; array_2: char 배열의 배열; array_3: 바이트 배열의 배열;

메모리 할당인덱스 경계 지정

배열은 모든 프로그래밍 언어에서 가장 유용하고 자주 사용되는 데이터 구조 중 하나입니다. 배열과 해당 요소를 관리하는 방법을 아는 것은 매우 중요하고 유용합니다. 이 글에서는 PHP에서 배열의 개별 요소를 제거하는 방법을 살펴보겠습니다.

이 작업은 제거되는 요소에 대해 우리가 알고 있는 정보(키가 알려진지(배열에 있는 요소의 번호 또는 식별자) 또는 해당 값만 알고 있는지)에 따라 다양한 방법을 사용하여 구현할 수 있습니다.

키로 배열의 요소 제거

요소 키가 알려진 경우 작업은 매우 간단합니다. 기능 설정되지 않음()배열 요소나 변수를 삭제할 수 있습니다(변수에 사용된 컴퓨터 메모리도 지워집니다).

예를 들어 다음과 같은 배열이 있습니다.

$myArr = 배열(1,2,3,4,5);

값이 "3"인 요소를 제거하려면 다음 코드를 사용하십시오.

설정 해제($myArr);

지정된 것은 값(3)이 아니라 요소(2)의 키(이 경우 0으로 시작)입니다. 따라서 배열의 첫 번째 요소를 제거해야 하는 경우 다음을 지정하십시오. 0 요소:

설정 해제($myArr);

두 번 삭제한 후 배열에 이제 세 가지 요소가 포함된다는 점도 고려해 볼 가치가 있습니다.

정렬
=> 2
=> 4
=> 5
)

나머지 요소의 모든 키는 유지됩니다. 따라서 이제 첫 번째 요소를 삭제해야 하는 경우 해당 요소를 키로 지정해야 합니다. 따라서 배열의 요소 수를 항상 알 수 없고 해당 값만 알 수 있으므로 이 옵션은 적합하지 않을 수 있습니다.

해당 값으로 배열 요소 제거

요소의 키는 모르지만 배열의 값만 알려진 경우 배열의 모든 요소를 ​​반복하여 찾고 있는 요소를 삭제해야 합니다. 예를 들어 값이 "3"인 요소를 삭제합니다.

$myArr = 배열(1,2,3,4,5);
foreach($myArr as $key => $item)(
if ($item == 3)(
unset($myArr[$key]);
}
}

* 조건은 $item 변수에서 루프에서 사용 가능한 배열 값을 확인하고, 삭제 시 요소 키($key 변수)를 표시하므로 주의하시기 바랍니다.

이 알고리즘은 요소 그룹을 한 번에 삭제해야 하는 경우에도 적합합니다. 결국 여기에는 삭제할 요소를 결정하는 조건이 있습니다.

교차하는 배열 요소 제거

PHP의 편리한 기능 중 하나는 다른 배열의 요소와 교차하지 않는 요소의 배열을 가져오는 기능입니다. 이렇게하려면 다음 기능을 사용하십시오. array_diff(). 배열을 매개변수로 사용하여 새 배열을 반환합니다. 예를 들어 $myArr2 배열에 포함되지 않은 요소만 필요한 초기 배열 $myArr이 있습니다.

$myArr = 배열(1,2,3,4,5);
$myArr2 = 배열(3,4);

기능을 적용하여 array_diff(), 필요한 요소만 포함된 새 배열을 얻습니다.

$resArr = array_diff($myArr, myArr2);

결과적으로 $resArr에는 다음이 포함됩니다.

정렬
=> 1
=> 2
=> 5
)

* 새로운 배열을 생성할 때 키가 저장된다는 점에 주목할 필요가 있습니다. 또한 선택 항목이 첫 번째 배열에서만 나온다는 점도 알아두는 것이 좋습니다. 따라서 $myArr2에 다른 고유 요소(예: "6" 또는 "7")가 있는 경우 이는 결과에 어떤 영향도 미치지 않으며 새 배열에 추가되지 않습니다.

답글 35개

배열 요소를 제거하는 방법에는 여러 가지가 있으며, 일부 방법은 다른 방법보다 특정 작업에 더 유용합니다.

하나의 배열 요소 제거

배열의 한 요소만 제거하려면 \unset() 또는 \array_splice() 를 사용할 수 있습니다.

또한 값이 있고 요소를 제거할 키를 모르는 경우 \array_search()를 사용하여 키를 가져올 수 있습니다.

\unset() 메서드

\unset()을 사용할 때 배열 키는 변경되거나 다시 색인화되지 않습니다. 키를 다시 색인화하려면 모든 키를 0부터 시작하는 숫자 키로 변환하는 \unset() 뒤에 \array_values()를 사용할 수 있습니다.

$배열 = 배열(0, 1, 2, 3); 설정 해제($배열); $array = array_values($array); var_dump($array); /* 배열(3) ( => int(0) => int(1) => int(3) ) */

// 초기 배열 $arr = array("blue", "green", "red", "yellow", "green", "orange", "yellow", "indigo", "red");

print_r($arr);

// 값이 노란색 또는 빨간색인 요소 제거 $arr = array_diff($arr, array("yellow", "red"));

print_r($arr);

위 코드의 출력은 다음과 같습니다.

배열( => 파란색 => 녹색 => 녹색 => 주황색 => 남색)

모든 값이 고유한 숫자 인덱스 배열이 있는 경우(또는 고유하지 않지만 특정 값의 모든 인스턴스를 제거하려는 경우) 간단히 array_diff()를 사용하여 해당 요소를 제거할 수 있습니다. 예를 들어

$my_array = array_diff($my_array, array("Value_to_remove"));

유형;

$my_array = array("앤디", "버사", "찰스", "다이애나"); 에코 크기($my_array) . "\N"; $my_array = array_diff($my_array, array("찰스")); 에코 크기($my_array);

다음이 표시됩니다.

이 예에서는 "Charles" 값을 가진 요소가 제거됩니다. sizeof() 호출을 사용하여 확인할 수 있듯이 원래 배열의 크기는 4이고 제거 후에는 3입니다.

배열의 한 요소를 삭제합니다.

설정되지 않음()

$array1 = array("A", "B", "C", "D", "E"); 설정되지 않음($array1); // 배열에서 알려진 index(2) 값을 삭제합니다. var_dump($array1);

출력은 다음과 같습니다:

배열(4) ( => 문자열(1) "A" => 문자열(1) "B" => 문자열(1) "D" => 문자열(1) "E" )

배열의 색인을 다시 생성해야 하는 경우:

$array1 = 배열_값($array1); var_dump($array1);

그러면 출력은 다음과 같습니다.

배열(4) ( => 문자열(1) "A" => 문자열(1) "B" => 문자열(1) "D" => 문자열(1) "E" )

배열 끝에서 요소 제거- 제거되는 요소의 값을 반환합니다.

혼합 array_pop(배열 &$array)

$stack = array("오렌지", "바나나", "사과", "라즈베리"); $last_fruit = array_pop($stack); print_r($스택); print_r("마지막 과일:".$last_fruit); // 배열의 마지막 요소

나갈 길은 있을 거야

배열 ( => 오렌지 => 바나나 => 사과) 마지막 과일: 라즈베리

배열에서 첫 번째 요소(빨간색)를 제거합니다., - 제거되는 요소의 값을 반환합니다.

혼합 array_shift (배열 &$배열)

$color = array("a" => "빨간색", "b" => "녹색" , "c" => "파란색"); $first_color = array_shift($color); print_r($color); print_r("첫 번째 색상: ".$first_color);

출력은 다음과 같습니다:

배열([b] => 녹색 [c] => 파란색) 첫 번째 색상: 빨간색

unset()은 지정된 변수를 파괴합니다.

함수 내 unset()의 동작은 삭제하려는 변수의 유형에 따라 달라질 수 있습니다.

전역 변수가 함수 내에서 unset()이면 지역 변수만 소멸됩니다. 호출 환경의 변수는 unset()이 호출되기 전과 동일한 값을 유지합니다.

위 코드의 응답은 다음과 같습니다. 술집.

함수 내에서 전역 변수를 설정 해제()하려면 다음을 수행하세요.

연관 배열의 경우 설정되지 않음 :

$arr = array("a" => 1, "b" => 2, "c" => 3); unset($arr["b"]); // 결과: array("a" => 1, "c" => 3)

숫자형 배열

숫자 배열의 경우 array_splice :

$arr = 배열(1, 2, 3); array_splice($arr, 1, 1); // 결과: 배열(0 => 1, 1 => 3)

메모

배열에서 여러 값을 제거해야 하고 해당 배열의 항목이 개체 또는 구조화된 데이터인 경우 이것이 최선의 선택입니다. 콜백 함수에서 true를 반환하는 항목이 저장됩니다.

$array = [ ["x"=>1,"y"=>2,"z"=>3], ["x"=>2,"y"=>4,"z"=>6], ["x"=>3,"y"=>6,"z"=>9] ]; $results = array_filter($array, function($value) ( ​​​​return $value["x"] > 2; )); //=> [["x"=>3,"y"=>6,z=>"9"]]

연관 배열에서 여러 요소를 제거해야 하는 경우 array_diff_key()를 사용할 수 있습니다(여기서는 array_flip()이 사용됨).

$my_array = array("key1" => "값 1", "key2" => "값 2", "key3" => "값 3", "key4" => "값 4", "key5" => "값 5",); $to_remove = array("key2", "key4"); $result = array_diff_key($my_array, array_flip($to_remove)); print_r($결과);

배열( => 값 1 => 값 3 => 값 5)

다음과 같은 배열이 있다고 가정해 보겠습니다.

배열 ( => 193 => 5)

저장 실행을 제거하려면:

Unset($attributes["storage"]); $속성 = array_filter($속성);

그리고 당신은 받게 될 것입니다:

배열 ( => 193)

가변 속성을 갖는 특정 개체가 있다고 말하고 싶습니다(기본적으로 테이블을 표시하고 테이블의 열을 변경했기 때문에 테이블을 반영하는 개체의 속성도 변경될 수 있음).

클래스 obj ( protected $fields = array("field1","field2"); protected $field1 = array(); protected $field2 = array(); protected loadfields()() // 이는 $field1 및 $를 로드합니다. field2에서 설명하는 열에 대한 데이터 행 포함 protected functionclearFields($num)( foreach($fields as $field) ( unset($this->$field[$num]); // 아래 줄에서는 작동하지 않았습니다. unset($this->($field)[$num]); // 먼저 ()를 사용하여 $field를 해결해야 합니다. ) )

$fields의 전체 목적은 간단하므로 변경 시 코드의 어느 곳도 볼 필요가 없습니다. 클래스의 시작 부분만 보고 속성 목록과 배열 내용을 변경하면 됩니다. $필드새로운 속성을 반영합니다.

기본 기능 따르기

$Array = array("테스트1","테스트2","테스트3","테스트3"); unset($Array);

$Array = array("테스트1","테스트2","테스트3","테스트3"); array_pop($Array);

$Array = array("테스트1","테스트2","테스트3","테스트3"); array_splice($Array,1,2);

$Array = array("테스트1","테스트2","테스트3","테스트3"); array_shift($Array);

여기서 unset()이 여러 번 언급되었지만 unset()이 여러 변수를 허용하므로 한 번의 작업으로 배열에서 인접하지 않은 여러 요소를 쉽게 제거할 수 있다는 점은 언급할 가치가 있습니다.

// 배열에서 연속되지 않은 여러 요소 삭제 $array = [ "foo", "bar", "baz", "quz" ]; unset($array, $array); print_r($array); // 출력: ["foo", "bar" ]

unset() 동적으로

unset()은 제거할 키 배열을 허용하지 않으므로 아래 코드는 실패합니다(비록 unset()을 동적으로 사용하는 것이 조금 더 쉬울지라도).

$배열 = 범위(0.5); $제거 = ; $배열 = 설정 해제($remove); // 실패: "예기치 않은 "설정 해제"" print_r($array);

대신 foreach 루프에서 unset()을 동적으로 사용할 수 있습니다.

$배열 = 범위(0.5); $제거 = ; foreach ($remove as $k=>$v) ( unset($array[$v]); ) print_r($array); // 출력: [0, 3, 4, 5]

배열을 복사하여 배열 키 제거

아직 언급되지 않은 또 다른 관행도 있습니다. 때때로 특정 배열 키를 제거하는 가장 쉬운 방법은 $array1을 $array2에 복사하는 것입니다.

$array1 = 범위(1,10); foreach ($array1 as $v) ( // 배열에서 짝수 정수를 모두 제거합니다. if($v % 2) ( $array2 = $v; ) ) print_r($array2); // 출력: [ 1, 3, 5, 7, 9 ];

분명히 동일한 관행이 텍스트 문자열에 적용됩니다.

$array1 = [ "foo", "_bar", "baz" ]; foreach ($array1 as $v) ( // 밑줄로 시작하는 모든 문자열을 제거합니다. if(strpos($v,"_")===false) ( $array2 = $v; ) ) print_r($array2); // 출력: ["foo", "baz" ]

솔루션:

  1. 단일 요소를 제거하려면 unset()을 사용하십시오.
설정 해제($배열); unset($array["foo"]);
  1. 인접하지 않은 여러 요소를 제거하려면 unset() 도 사용하세요.
unset($array, $array); unset($array["foo"], $array["bar"]);
  1. 여러 개의 인접한 요소를 제거하려면 array_splice()를 사용하십시오.
array_splice($array, $offset, $length);

추가 설명:

$array = $array["foo"] = "";

구문 외에도 unset()을 사용하는 것과 요소를 할당하는 것 사이에는 논리적인 차이가 있습니다. 첫 번째는 This가 더 이상 존재하지 않는다고 말하고, 두 번째는 This가 여전히 존재하지만 해당 값은 빈 문자열이라고 말합니다.

숫자를 처리하는 경우 0을 선택하는 것이 좋습니다. 따라서 회사가 모델 XL1000 스프로킷 생산을 중단하면 재고가 업데이트됩니다.

설정되지 않음($products["XL1000"]);

그러나 일시적으로 XL1000 스프로킷이 품절되었지만 이번 주 후반에 공장에서 새 배치를 받을 예정인 경우 다음이 더 좋습니다.

$products["XL1000"] = 0;

키를 기준으로 배열 요소를 제거합니다.

아래와 같이 unset 함수를 사용하십시오.

$a = array("살람", "10", 1); 설정되지 않음($a); print_r($a); /* 출력: 배열 ( => salam => 1) */

값을 기준으로 배열 요소를 제거합니다.

array_search 함수를 사용하여 요소의 키를 가져오고 위 방법을 사용하여 아래와 같이 배열 요소를 제거합니다.

$a = array("살람", "10", 1); $key = array_search(10, $a); if($key !== false) ( unset($a[ $key ]); ) print_r($a); /* 출력: 배열 ( => salam => 1) */

$array 변수에 배열을 만든 다음 "제거하려는 요소"를 입력한 곳에 "a"와 같은 내용을 입력합니다. 여러 개를 삭제하려면 "a", "b"를 선택하세요.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: