>  기사  >  백엔드 개발  >  PHP에서 배열을 검색하는 방법

PHP에서 배열을 검색하는 방법

PHPz
PHPz원래의
2023-04-20 15:07:181845검색

PHP는 개발자가 다양한 데이터 유형을 쉽게 처리하고 조작할 수 있도록 해주는 일반적으로 사용되는 서버 측 프로그래밍 언어입니다. 가장 일반적으로 사용되는 데이터 유형 중 하나는 배열입니다. PHP에서 배열 검색은 매우 기본적이고 일반적인 작업입니다. 다음으로 PHP에서 배열을 검색하는 방법을 살펴보겠습니다.

1. PHP 배열 검색 소개

PHP에서 배열은 키-값 쌍의 형태로 저장될 수 있는 순서가 지정된 요소 집합을 의미하며, 각 요소에는 관련 키와 해당 값이 있습니다. 이러한 배열 요소를 찾으려면 배열 검색을 사용해야 합니다.

배열 검색은 기존 배열에서 지정된 값이나 키를 검색하여 대상 값이나 키가 배열에 존재하는지 여부를 확인하는 것을 말합니다. PHP는 선형 검색, 이진 검색, 재귀 검색 등 다양한 배열 검색 방법을 제공합니다.

2. PHP 배열의 선형 검색

PHP에서 가장 간단한 검색 방법은 전체 배열을 탐색하여 대상 키나 값을 찾는 방법인 선형 검색입니다. 선형 검색의 기본 개념은 배열의 첫 번째 요소부터 시작하여 대상 값과 키를 하나씩 비교하는 것입니다. 대상 값이나 키가 발견되면 해당 인덱스 또는 값이 반환됩니다. 전체 배열을 순회한 후 발견되면 "false"를 반환하면 검색이 실패했음을 의미합니다.

다음은 샘플 코드 구현입니다.

$arr = array("apple", "orange", "banana", "grape");  
$target = "banana";
for($i=0;$i<count($arr);$i++){
if($arr[$i] == $target){
echo "目标值 " . $target . " 在数组中的索引是 " . $i;
break;
}
}

위 코드에서는 $arr 배열을 정의한 다음 루프를 사용하여 배열의 각 요소를 반복합니다. 목표 값을 찾으면 "echo" 문을 사용하여 목표 값의 인덱스를 배열에 출력한 다음 "break" 문을 사용하여 루프를 종료합니다.

3. PHP에서 배열의 이진 검색

PHP에서는 배열이 정렬되어 있으면 이진 검색을 사용하여 더 빠른 검색을 할 수 있습니다. 이진 검색은 비교 기반 검색 알고리즘이며 분할 정복 사고의 전형적인 응용 프로그램입니다.

이진 검색의 기본 아이디어는 정렬된 배열을 두 부분으로 나누고, 배열의 중간에 있는 값을 찾은 다음, 대상과 해당 값을 비교하여 대상이 해당 값보다 작은 경우 에서 재귀적으로 검색하는 것입니다. 첫 번째 절반(왼쪽), 대상이 이 값보다 큰 경우 두 번째 절반(오른쪽)에서 재귀적으로 검색하고, 대상이 이 값과 같으면 해당 인덱스 또는 값을 반환합니다.

다음은 샘플 코드 구현입니다.

function binary_search($arr,$target){
$low = 0;
$high = count($arr) - 1;
while($low <= $high) {
$middle = intval(($low + $high)/2);
if($arr[$middle] == $target) {
return $middle;
} elseif ($arr[$middle] > $target) {
$high = $middle -1;
} else {
$low = $middle + 1;
}
}
return -1;
}
$arr = array(1,3,5,7,9,11);
$target = 7;
echo "目标值 " . $target . " 在数组中的索引是 " . binary_search($arr,$target);

위 코드에서는 정렬된 배열과 대상 값을 매개변수로 전달받고, 대상 값의 인덱스를 배열에 반환하는 Binary_search 함수를 정의합니다. 루프와 조건문은 이진 검색 알고리즘을 구현하기 위해 함수에서 사용됩니다.

4. PHP에서 배열의 재귀 검색

재귀 검색은 간단하지만 상대적으로 비효율적인 검색 방법입니다. 자체 함수를 재귀적으로 호출하여 전체 배열을 탐색하고 대상 값이나 키를 찾습니다. 재귀 검색의 기본 아이디어는 배열이 비어 있으면 "false"를 반환하고, 그렇지 않으면 첫 번째 배열 요소가 대상 값 또는 키인지 확인하고, 그렇지 않으면 해당 인덱스 또는 값을 반환합니다. 첫 번째 요소를 제외한 나머지 배열 요소를 재귀적으로 처리하는 자체 함수입니다.

다음은 샘플 코드 구현입니다.

function search($arr,$target) {
if(empty($arr)){
return false;
}
if($arr[0] == $target){
return 0;
} else {
$index = search(array_slice($arr,1),$target);
if($index === false) {
return false;
} else {
return $index+1;
}
}
}
$arr = array("apple", "orange", "banana", "grape");  
$target = "orange";
echo "目标值 " . $target . " 在数组中的索引是 " . search($arr,$target);

위 코드에서는 배열과 대상 값을 매개변수로 받고, 대상 값의 인덱스를 배열에 반환하는 함수 검색을 정의합니다. 이 함수는 자체 함수에 대한 재귀 호출을 사용하여 전체 배열을 탐색하고 대상 값이나 키를 찾습니다.

5. 요약

이상은 PHP에서 배열을 검색하는 방법에 대한 소개입니다. 다양한 필요에 따라 적절한 검색 알고리즘을 선택할 수 있습니다. 순서가 지정되지 않은 배열의 경우 선형 검색 또는 재귀 검색을 선택할 수 있으며, 순서가 지정된 배열의 경우 이진 검색을 선택하여 검색 효율성을 높일 수 있습니다. 실제 개발에서는 실제 상황에 맞는 방법을 선택하는 것이 매우 중요하며 성능에 미치는 영향도 매우 큽니다.

위 내용은 PHP에서 배열을 검색하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.