PHP를 사용하여 배열 키를 제외하는 방법

PHPz
풀어 주다: 2023-04-24 15:00:55
원래의
539명이 탐색했습니다.

PHP 프로그래밍에서 배열은 매우 일반적인 데이터 유형이며 배열을 조작해야 하는 경우가 많습니다. 그러나 때로는 다른 키를 유지하면서 배열에서 특정 키를 제외해야 하는 경우도 있습니다. 이 기사에서는 PHP를 사용하여 배열 키를 제외하는 방법을 설명합니다.

1. unset 함수 사용

unset 함수는 키-값 쌍을 삭제할 수 있습니다. 키가 unset 함수에 매개변수로 전달되면 해당 키가 삭제됩니다.

다음은 unset 함수를 사용하여 배열 키를 제외하는 예입니다.

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane'
);

unset($my_array['foo']);

print_r($my_array); // Array ( [john] => doe [mary] => jane )
로그인 후 복사

위 예에서는 $my_array 배열의 'foo' 키가 unset 함수를 통해 삭제되는 것을 확인할 수 있습니다. 인쇄된 배열의 키입니다. 'foo' 키의 값입니다.

그러므로 배열에서 제외할 모든 키를 반복하여 unset 함수를 사용하여 하나씩 삭제할 수 있습니다.

다음은 unset 함수를 사용하여 여러 배열 키를 제외하는 예입니다.

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane',
    'jane' => 'smith'
);

$exclude_keys = array('foo', 'mary');

foreach ($exclude_keys as $key) {
    unset($my_array[$key]);
}

print_r($my_array); // Array ( [john] => doe [jane] => smith )
로그인 후 복사

위 예에서는 foreach 루프를 사용하여 제외할 키 배열 $exclude_keys를 순회한 후 배열에서 삭제합니다. unset 함수를 통해 차례로.

2. array_diff_key 함수 사용

PHP는 두 배열의 키를 비교하고 차이를 반환하는 데 사용할 수 있는 매우 편리한 array_diff_key 함수를 제공합니다.

다음은 array_diff_key 함수를 사용하여 여러 배열 키를 제외하는 예입니다.

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane',
    'jane' => 'smith'
);

$exclude_keys = array('foo', 'mary');

$filtered_array = array_diff_key($my_array, array_combine($exclude_keys, array_fill(0, count($exclude_keys), null)));

print_r($filtered_array); // Array ( [john] => doe [jane] => smith )
로그인 후 복사

위 예에서는 array_combine 및 array_fill 함수를 사용하여 모두 null 값을 갖는 동일한 길이의 배열을 생성한 다음 array_diff_key 함수를 사용합니다. $를 반환하는 데 사용됩니다. my_array와 모든 빈 키가 있는 배열, 즉 $exclude_keys 배열의 모든 키를 제외한 배열 사이의 차이입니다.

3. array_filter 함수를 사용하세요.

PHP에서는 array_filter 함수를 사용하여 배열을 필터링하고 해당 배열 요소를 반환합니다. 콜백 함수를 제공하므로 특정 키를 제외해야 하는지 여부를 결정하는 콜백 함수를 작성할 수 있습니다.

다음은 array_filter 함수를 사용하여 여러 배열 키를 제외하는 예입니다.

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane',
    'jane' => 'smith'
);

$exclude_keys = array('foo', 'mary');

$filtered_array = array_filter($my_array, function($key) use ($exclude_keys) {
    return !in_array($key, $exclude_keys);
}, ARRAY_FILTER_USE_KEY);

print_r($filtered_array); // Array ( [john] => doe [jane] => smith )
로그인 후 복사

위 예에서는 익명 함수를 정의하고 use 키워드를 사용하여 $exclude_keys 배열을 해당 함수에 전달했습니다. 이 익명 함수의 기능은 $exclude_keys 배열에 배열 키가 있는 경우 false를 반환하여 필터링해야 함을 나타냅니다. 마지막으로 이 익명 함수를 array_filter 함수에 콜백 함수로 전달합니다. array_filter 함수를 사용할 때 세 번째 매개변수를 ARRAY_FILTER_USE_KEY로 지정합니다. 이는 콜백 함수를 사용하여 배열의 키를 필터링한다는 것을 나타냅니다.

4. array_keys 및 array_diff 함수 사용

마지막으로 array_keys 및 array_diff 함수를 사용하여 배열 키를 제외할 수도 있습니다. 구체적인 방법은 먼저 array_keys 함수를 사용하여 배열의 모든 키를 가져온 다음 array_diff 함수를 사용하여 유지해야 하는 키를 가져온 다음 이 키를 사용하여 새 배열을 구성하는 것입니다.

다음은 array_keys 및 array_diff 함수를 사용하여 여러 배열 키를 제외하는 예입니다.

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane',
    'jane' => 'smith'
);

$exclude_keys = array('foo', 'mary');

$filtered_keys = array_diff(array_keys($my_array), $exclude_keys);

$filtered_array = array_intersect_key($my_array, array_combine($filtered_keys, $filtered_keys));

print_r($filtered_array); // Array ( [john] => doe [jane] => smith )
로그인 후 복사

위 예에서는 먼저 array_keys 함수를 사용하여 $my_array의 모든 키를 얻은 다음 array_diff 함수를 사용하여 필터링합니다. 보관해야 하는 키. 그런 다음 array_combine 함수를 사용하여 필터링된 키를 동일한 키 값이 있는 배열로 구성하고 마지막으로 array_intersect_key 함수를 사용하여 필터링된 배열을 반환합니다.

요약

PHP는 배열 키를 제외하는 여러 가지 방법을 제공하며, 다양한 실제 상황을 처리하기 위해 다양한 방법을 사용하도록 선택할 수 있습니다. 특히 unset 함수, array_diff_key 함수, array_filter 함수, array_keys 및 array_diff 함수를 사용하여 이 작업을 완료할 수 있습니다. 이러한 방법을 사용할 때 불필요한 키를 실수로 삭제하거나 유지하지 않도록 배열 키를 주의 깊게 처리해야 한다는 점에 유의하는 것이 중요합니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿