두 가지 방법: 1. array_search() 및 array_splice()를 사용하여 삭제합니다. 구문은 "array_splice($arr,array_search("string",$arr,true),1);"입니다. 2. foreach 문과 unset()을 사용하여 "foreach($arr as $k=>&$v){if($v==="string"){unset($arr[$k) 구문을 삭제합니다. ]) ;}}".
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, DELL G3 컴퓨터
방법 1: array_search()+array_splice() 사용
1단계: array_search( ) 함수 배열에서 지정된 문자열을 검색하고 해당 키 이름
array_search(value,array,strict)
parameter | description |
---|---|
value | 을 반환합니다. 배열에서 검색할 키 값을 지정합니다. |
array | 필수입니다. 검색할 배열을 지정합니다. |
strict | 선택사항. 이 매개변수가 TRUE로 설정되면 함수는 배열에서 동일한 데이터 유형 및 값의 요소를 검색합니다. 가능한 값:
|
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(10,"12",12,25,24); echo "原数组:"; var_dump($arr); $key=array_search("12",$arr,true); echo "指定字符串'12'的键名为:".$key; ?>
2단계: array_splice() 함수를 사용하여 획득한 키 이름을 기반으로 요소를 삭제합니다.
array_splice() 함수는 선택한 요소를 배열에서 제거합니다. 새 요소) .
array_splice(array1,start,length,array2)
Parameters | Description |
---|---|
array1 | 필수입니다. 배열을 지정합니다. |
start | 필수입니다. 수치. 삭제된 요소의 시작 위치를 지정합니다.
0 = 첫 번째 요소.
값이 양수로 설정된 경우 배열의 값으로 지정된 오프셋에서 제거가 시작됩니다. 이 값을 음수로 설정하면 배열 끝에서 값으로 지정된 오프셋에서 제거가 시작됩니다.
-2는 배열의 두 번째 요소부터 마지막 요소까지 시작한다는 의미입니다. |
길이 | 선택사항. 수치. 제거할 요소 수를 지정합니다. 이는 반환된 배열의 길이이기도 합니다.
이 값이 양수로 설정된 경우 이 요소 수를 제거합니다. 이 값이 음수로 설정되면 시작부터 배열 끝의 길이의 역수까지 모든 요소가 제거됩니다. 이 값을 설정하지 않으면 시작 매개변수에 설정된 위치부터 배열 끝까지의 모든 요소가 제거됩니다. |
array2 | 선택 사항입니다. 원래 배열에 삽입할 요소가 포함된 배열을 지정합니다. 요소가 하나만 있는 경우 문자열로 설정할 수 있으며 배열로 설정할 필요가 없습니다. |
설명: 이 함수는 원래 배열을 변경합니다
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(10,"12",12,25,24); echo "原数组:"; var_dump($arr); $key=array_search("12",$arr,true); echo "指定字符串'12'的键名为:".$key; array_splice($arr,$key,1); echo "<br><br>删除指定字符串'12'后:"; var_dump($arr); ?>
방법 2: foreach 문 + unset() 함수 사용
1단계: foreach 문을 사용하여 참조를 통해 배열을 순회합니다. loop
foreach ($array as $key => &$value){ //循环体语句块; }
주어진 $array 배열을 순회하며 각 루프에서 현재 배열의 값을 $value에 할당하고 키 이름을 $key에 할당합니다.
일반적으로 foreach 문을 사용하여 배열을 순회하는 경우 배열 백업에서 작동하며 일반적으로 배열 자체에는 영향을 미치지 않습니다.
루프를 통해 배열을 변경하려면 참조 루프를 사용할 수 있습니다($value 앞에 &를 추가하면 foreach 문이 값을 복사하는 대신 참조로 값을 할당함). 루프 본문은 배열 자체에 영향을 미칩니다.
2단계: 루프 본문에서 "===" 연산자를 사용하여 지정된 문자열을 찾고 unset() 함수를 사용하여 요소를 삭제합니다.
if($value==="指定字符串"){ unset($arr[$key]); }
전체 샘플 코드:
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(10,"25",12,25,"24"); echo "原数组:"; var_dump($arr); foreach ($arr as $key => &$value){ if($value==="25"){ unset($arr[$key]); } } echo "<br>删除指定字符串'25'后:"; var_dump($arr); ?>
볼 수 있듯이 마지막 요소 앞에 &가 있습니다. 이는 배열의 마지막 요소에 대한 $value 참조가 foreach 루프 후에도 계속 유지되기 때문입니다. 이를 파괴하려면 unset()을 사용해야 합니다.
unset($value); // 最后取消掉引用
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP 배열에서 특정 문자열을 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!