>  기사  >  백엔드 개발  >  PHP8의 배열 함수: array_search()의 다양한 실제 응용

PHP8의 배열 함수: array_search()의 다양한 실제 응용

PHPz
PHPz원래의
2023-05-16 10:02:062565검색

PHP는 웹 개발에 널리 사용되는 프로그래밍 언어입니다. 최신 버전인 PHP8에 추가된 다양한 새로운 기능은 개발자들의 많은 관심을 끌었습니다. 중요한 기능 중 하나는 배열 함수의 개선인데, 그 중 array_search() 함수가 가장 주목할 만합니다. 이 기사에서는 모든 사람이 이 실용적인 기능을 더 잘 익힐 수 있도록 array_search() 함수의 다양한 실제 응용 프로그램을 소개합니다.

1. array_search() 함수란 무엇인가요?

array_search() 함수의 다양한 활용을 이해하기 전에 먼저 이 함수가 무엇인지, 어떤 용도로 사용되는지 이해해야 합니다. 간단히 말해서, array_search() 함수는 배열에서 지정된 요소의 인덱스 위치를 찾는 데 사용됩니다. 발견되면 배열에 있는 요소의 키를 반환하고, 그렇지 않으면 false를 반환합니다.

이 함수의 기본 구문은 다음과 같습니다.

array_search($search, $array, $strict)

그 중 $search는 찾을 요소, $array는 찾을 배열, $strict는 "strict 모드 수행 여부를 제어하는 ​​데 사용되는 선택적 매개 변수입니다. "(즉, 매개변수 유형이 정확히 일치해야 합니다). 함수에서 반환되는 결과는 두 가지입니다. 검색에 성공하면 배열에 있는 요소의 키가 반환되고, 그렇지 않으면 false가 반환됩니다.

다음으로는 누구나 array_search() 함수를 더 잘 이해할 수 있도록 다양한 실제 응용 시나리오를 소개하겠습니다.

2. 배열에서 지정된 요소 삭제

때로는 배열에서 지정된 요소를 삭제해야 할 때가 있습니다. 이 경우 array_search() 함수를 사용하여 제거할 요소의 인덱스 위치를 찾은 다음 array_splice() 함수를 사용하여 배열에서 제거할 수 있습니다.

샘플 코드는 다음과 같습니다.

$arr = array('a', 'b', 'c', 'd', 'e');
$search = 'c';
$key = array_search($search, $arr);
if ($key !== false) { // 判断是否查找到了指定元素
    array_splice($arr, $key, 1);
}
print_r($arr);

위 코드를 실행한 후 출력 결과는 다음과 같습니다.

Array
(
    [0] => a
    [1] => b
    [2] => d
    [3] => e
)

보시다시피 배열의 'c' 요소가 삭제되었습니다. 이 방법은 배열 내부에서 직접 작동하고 전체 배열을 복사할 필요가 없기 때문에 배열 요소를 "빠르게 삭제"해야 하는 상황에 적합합니다.

3. 배열에 지정된 요소가 포함되어 있는지 확인

개발 과정에서 배열에 지정된 요소가 포함되어 있는지 확인해야 하는 경우가 있습니다. array_search() 함수는 이 작업을 수행하는 데 도움이 될 수 있습니다. 예는 다음과 같습니다.

$arr = array('apple', 'banana', 'pear', 'grape');
$search = 'apple';
$key = array_search($search, $arr);
if ($key !== false) {
    echo 'The fruit "' . $search . '" exists in the array.' . '<br>';
} else {
    echo 'The fruit "' . $search . '" does not exist in the array.' . '<br>';
}

여기에서는 먼저 네 가지 과일 이름이 포함된 배열을 정의합니다. 그런 다음 $search 변수를 정의하고 array_search() 함수를 사용하여 배열의 요소를 찾습니다. 마지막으로 if 문을 사용하여 $search 변수의 값을 확인합니다. false가 아닌 경우 해당 요소가 배열에 존재한다는 의미입니다.

4. 2차원 배열에서 일치하는 항목 검색

array_search() 함수는 1차원 배열을 검색할 때 매우 유용하지만 2차원 배열을 검색할 때는 약간 더 복잡합니다. 이 경우 foreach 루프를 사용하여 배열의 각 요소를 검색한 다음 array_search() 함수를 사용하여 지정된 요소를 찾을 수 있습니다.

다음은 2차원 배열을 사용한 샘플 코드입니다.

$array = array(
    array('name' => 'Alice', 'age' => 22),
    array('name' => 'Bob', 'age' => 23),
    array('name' => 'Charlie', 'age' => 24)
);
$search = 'Bob';
foreach ($array as $key => $value) {
    if (array_search($search, $value)) {
        echo 'The person named ' . $search . ' exists in the array.' . '<br>';
    } else {
        echo 'The person named ' . $search . ' does not exist in the array.' . '<br>';
    }
}

여기서는 세 사람('Alice', 'Bob', 'Charlie')의 이름과 나이를 포함하는 2차원 배열을 정의합니다. . 그런 다음 foreach 루프를 사용하여 배열의 각 요소를 검색합니다. 루프에서 array_search() 함수를 사용하여 지정된 사람의 이름을 찾고 일치하는 항목이 있으면 웹 페이지에 메시지를 출력하고, 그렇지 않으면 다른 메시지를 출력합니다.

5. 여러 배열에서 일치하는 항목 검색

여러 배열에서 일치하는 항목을 검색해야 하는 경우 array_search() 함수도 이 작업을 완료하는 데 도움이 될 수 있습니다. 예는 다음과 같습니다.

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
$array3 = array('g', 'h', 'i');
$search = 'c';
$found = false;
foreach (array($array1, $array2, $array3) as $array) {
    if (array_search($search, $array)) {
        $found = true;
        break;
    }
}
if ($found) {
    echo 'The element "' . $search . '" exists in one of the arrays.' . '<br>';
} else {
    echo 'The element "' . $search . '" does not exist in any of the arrays.' . '<br>';
}

여기에서는 세 개의 배열 $array1, $array2 및 $array3을 정의하고 $search 변수를 정의했습니다. 그런 다음 foreach 루프를 사용하여 모든 배열을 반복하고 array_search() 함수를 사용하여 각 배열에서 지정된 요소를 찾습니다. 일치하는 항목이 발견되면 $found 변수를 true로 설정한 다음 break 문을 사용하여 루프를 종료합니다. 마지막으로 if 문을 사용하여 $found 변수의 값을 확인하여 지정된 요소가 배열에서 발견되는지 확인합니다.

6. 다차원 배열에서 경로 검색

어떤 경우에는 다차원 배열에서 지정된 경로를 검색하고 경로의 요소를 반환해야 합니다. 사용 사례는 다음과 같습니다.

$array = array(
    'a' => array('b' => array('c' => 'd'))
);
$search = 'c';
function search_path($array, $search, &$path = array()) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $path[] = $key;
            if (search_path($value, $search, $path)) {
                return true;
            }
            array_pop($path);
        } else {
            if ($key === $search) {
                $path[] = $key;
                return true;
            }
        }
    }
    return false;
}
$path = array();
if (search_path($array, $search, $path)) {
    echo 'The path to "' . $search . '" is: ' . implode(' > ', $path) . '<br>';
} else {
    echo 'Could not find the path to "' . $search . '".' . '<br>';
}

이 예에서는 'a/b/c' 경로에 저장된 스칼라 값 'd'를 포함하는 다차원 배열을 정의합니다. 그런 다음 사용자 정의 함수 search_path()를 사용하여 경로를 찾고 경로에 있는 요소를 반환합니다. 이 함수는 재귀를 사용하여 다차원 배열을 탐색하고 지정된 경로에서 요소를 찾습니다. 발견되면 $paths 배열에 경로를 저장하고 true를 반환합니다. 찾을 수 없으면 함수는 false를 반환합니다.

search_path() 함수를 실행한 후 $path 배열을 매개변수로 전달하고 implode() 함수를 사용하여 웹 페이지에 경로를 표시할 수 있습니다.

결론

이 글에서는 array_search() 함수의 다양한 실제 응용 방법을 소개했습니다. 이 함수는 1차원 배열의 요소를 찾을 수 있을 뿐만 아니라 다차원 배열의 경로도 찾을 수 있습니다. 이 기능을 익히면 개발 과정에서 어레이와 데이터를 보다 편리하고 효율적으로 운영할 수 있습니다.

위 내용은 PHP8의 배열 함수: array_search()의 다양한 실제 응용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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