때때로 배열을 확장하거나 배열의 일부를 삭제해야 할 때가 있습니다. PHP는 배열을 확장하고 축소하는 몇 가지 기능을 제공합니다. 이러한 기능은 다양한 대기열 구현(FIFO, LIFO)을 에뮬레이션하려는 프로그래머에게 편의를 제공합니다. 이름에서 알 수 있듯이 이러한 기능의 기능 이름(push, pop, Shift 및 unshift)은 해당 기능을 명확하게 반영합니다.
PS: 기존 큐는 요소를 삭제하는 순서와 요소를 추가하는 순서가 동일하며 이를 선입선출(FIFO)이라고 합니다. 대조적으로, 스택은 요소가 추가된 역순으로 제거되는 또 다른 데이터 구조입니다. 이것이 후입선출(LIFO)이 됩니다.
배열의 선두에 요소 추가
array_unshift() 함수는 배열의 헤드에 요소를 추가합니다. 모든 기존 숫자 키는 배열의 새 위치를 반영하도록 수정되지만 관련 키는 영향을 받지 않습니다. 형태는 다음과 같습니다.
int array_unshift(array array,mixed variable[,mixed variable])
다음 예에서는 $fruits 배열 앞에 두 개의 과일을 추가합니다.
$fruits = array("apple","banana"); array_unshift($fruits,"orange","pear") // $fruits = array("orange","pear","apple","banana");
배열 끝에 요소 추가
array_push() 함수의 반환 값은 데이터를 푸시한 후 배열의 요소 수인 int 유형입니다. 이 함수에 매개 변수로 여러 변수를 전달하고 여러 변수를 배열에 푸시할 수 있습니다. 같은 시간. 형식은 다음과 같습니다.
(array array,mixed variable [,mixed variable...])
다음 예에서는 $fruits 배열에 두 개의 과일을 더 추가합니다.
$fruits = array("apple","banana"); array_push($fruits,"orange","pear") //$fruits = array("apple","banana","orange","pear")
배열 헤드에서 값 삭제
array_shift() 함수는 배열에서 찾은 요소를 제거하고 반환합니다. 결과적으로 숫자 키를 사용하면 해당 값이 모두 아래로 이동하지만 연관 키를 사용하는 배열은 영향을 받지 않습니다. 형식은 다음과 같습니다.
mixed array_shift(array array)
다음 예에서는 $fruits 배열의 첫 번째 요소 apple을 삭제합니다.
$fruits = array("apple","banana","orange","pear"); $fruit = array_shift($fruits); // $fruits = array("banana","orange","pear") // $fruit = "apple";
배열 끝에서 요소 삭제
array_pop() 함수는 배열의 마지막 요소를 제거하고 반환합니다. 형식은 다음과 같습니다.
mixed array_pop(aray target_array);
다음 예에서는 $states 배열에서 마지막 상태를 제거합니다.
$fruits = array("apple","banana","orange","pear"); $fruit = array_pop($fruits); //$fruits = array("apple","banana","orange"); //$fruit = "pear";
배열 요소 찾기, 필터링 및 검색은 배열 작업의 몇 가지 일반적인 기능입니다. 다음은 몇 가지 관련 기능입니다.
in_array() 함수
in_array() 함수는 배열에서 특정 값을 검색하여 해당 값이 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 형태는 다음과 같습니다.
boolean in_array(mixed needle,array haystack[,boolean strict]);
변수 apple이 이미 배열에 있는지 알아보기 위해 다음 예제를 살펴보겠습니다. 그렇다면 정보를 출력합니다.
$fruit = "apple"; $fruits = array("apple","banana","orange","pear"); if( in_array($fruit,$fruits) )
echo "$fruit가 이미 배열에 있습니다.";
세 번째 인수는 선택 사항이며 검색 시 in_array()가 유형을 고려하도록 강제합니다.
array_key_exists() 함수
지정된 키가 배열에서 발견되면 array_key_exists() 함수는 true를 반환하고, 그렇지 않으면 false를 반환합니다. 형태는 다음과 같습니다.
부울 array_key_exists(혼합 키, 배열 배열);
다음 예에서는 배열 키에서 apple을 검색하고, 발견되면 과일의 색상을 출력합니다.
$fruit["apple"] = "red"; $fruit["banana"] = "yellow"; $fruit["pear"] = "green"; if(array_key_exists("apple", $fruit)){ printf("apple's color is %s",$fruit["apple"]); }
이 코드를 실행한 결과:
apple's color is red
array_search() 함수
array_search() 함수는 배열에서 지정된 값을 검색하고, 발견되면 해당 키를 반환하고, 그렇지 않으면 false를 반환합니다. 형태는 다음과 같습니다.
mixed array_search(mixed needle,array haystack[,boolean strict])
다음 예에서는 특정 날짜(12월 7일)에 대해 $fruits를 검색하고, 찾은 경우 해당 주에 대한 정보를 반환합니다.
$fruits["apple"] = "red"; $fruits["banana"] = "yellow"; $fruits["watermelon"]="green"; $founded = array_search("green", $fruits); if($founded) printf("%s was founded on %s.",$founded, $fruits[$founded])
프로그램 실행 결과는 다음과 같습니다.
watermelon was founded on green.
array_keys() 함수
array_keys() 함수는 검색된 배열에서 찾은 모든 키가 포함된 배열을 반환합니다. 형태는 다음과 같습니다.
array array_keys(array array[,mixed search_value])
선택적 매개변수인 search_value가 포함된 경우 해당 값과 일치하는 키만 반환됩니다. 다음 예에서는 $fruit 배열에 있는 모든 배열을 출력합니다.
$fruits["apple"] = "red"; $fruits["banana"] = "yellow"; $fruits["watermelon"]="green"; $keys = array_keys($fruits); print_r($keys);
프로그램 실행 결과는 다음과 같습니다.
Array ( [0] => apple [1] => banana [2] => watermelon )
array_values() 함수
array_values() 함수는 배열의 모든 값을 반환하고 반환된 배열에 대한 숫자 인덱스를 자동으로 제공합니다. 형태는 다음과 같습니다.
array array_values(array array)
다음 예에서는 $fruits에 있는 각 요소의 값을 가져옵니다.
$fruits["apple"] = "red"; $fruits["banana"] = "yellow"; $fruits["watermelon"]="green"; $values = array_values($fruits); print_r($values);
프로그램 실행 결과는 다음과 같습니다.
Array ( [0] => red [1] => yellow [2] => green )