> 백엔드 개발 > PHP 문제 > PHP에서 배열 인덱스를 변경하는 방법

PHP에서 배열 인덱스를 변경하는 방법

PHPz
풀어 주다: 2023-04-25 10:17:34
원래의
1048명이 탐색했습니다.

PHP에서는 인덱스를 재배열하거나 특정 요소의 인덱스 값을 변경하는 등 배열의 인덱스를 변경해야 하는 경우가 많습니다. 이 기사에서는 배열 인덱스를 쉽게 수정하는 데 도움이 되는 몇 가지 일반적으로 사용되는 PHP 함수 및 기술을 소개합니다.

1. array_values() 함수를 사용하여 인덱스를 재정렬하세요.

배열에 불연속 인덱스가 포함되어 있고 이러한 인덱스를 재정렬하려는 경우 array_values() 함수를 사용할 수 있습니다. 이 함수는 요소는 변경되지 않고 인덱스는 순서대로 재배열된 새 배열을 반환할 수 있습니다.

예를 들어 다음 배열이 있다고 가정합니다.

$fruits = array(2 => 'apple', 4 => 'banana', 6 => 'orange');
로그인 후 복사

이 배열의 인덱스는 연속적이지 않습니다. print_r() 함수를 사용하여 이 배열을 인쇄하면 다음과 같은 출력이 표시됩니다.

Array
(
    [2] => apple
    [4] => banana
    [6] => orange
)
로그인 후 복사

인덱스를 다시 정렬하려면 다음과 같이 배열을 array_values() 함수에 전달하세요.

$fruits = array_values($fruits);
로그인 후 복사

이제 배열의 인덱스는

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)
로그인 후 복사

이 함수는 원래 배열을 수정하지 않고 새 배열을 반환한다는 점에 유의하세요. 따라서 인덱스 변경을 구현하려면 반환된 배열을 원래 배열에 할당해야 합니다.

2. unset() 함수를 사용하여 요소를 삭제하고 새 키로 다시 할당합니다.

또 다른 방법은 unset() 함수를 사용하여 원래 배열의 요소를 삭제하고 새 키로 다시 할당하는 것입니다. 예를 들어 다음 배열이 있다고 가정해 보겠습니다.

$colors = array('red', 'green', 'blue');
로그인 후 복사

이제 'green' 요소를 제거하고 'purple'을 새 키로 사용한다고 가정해 보겠습니다. unset() 함수를 사용하여 요소를 제거하고 새 배열 요소로 다시 할당할 수 있습니다.

unset($colors[1]); // 删除'green'元素
$colors['purple'] = 'blue'; // 使用'purple'作为键重新分配'blue'元素
로그인 후 복사

이제 배열은 다음과 같습니다.

Array
(
    [0] => red
    [purple] => blue
)
로그인 후 복사

이 방법을 사용하면 요소와의 충돌을 피하도록 주의해야 합니다. 새 키. 새 키가 기존 키와 충돌하는 경우 해당 키의 값을 덮어씁니다.

3. array_combine() 함수를 사용하여 두 배열을 새 배열로 결합합니다.

때로는 두 배열을 새 배열로 결합하고 배열 중 하나의 키를 새 배열의 키로 사용해야 할 수도 있습니다. 예를 들어 다음과 같은 두 개의 배열이 있다고 가정해 보겠습니다.

$keys = array('name', 'email', 'phone');
$values = array('John', 'john@example.com', '123-456-7890');
로그인 후 복사

이제 $keys 배열의 요소를 새 배열의 키로 사용하고 $values ​​배열의 요소를 값으로 사용한다고 가정해 보겠습니다. 새로운 배열에서. array_combine() 함수를 사용하여 이 두 배열을 새 배열로 결합할 수 있습니다.

$contact = array_combine($keys, $values);
로그인 후 복사

이제 $contact 배열은 다음과 같습니다.

Array
(
    [name] => John
    [email] => john@example.com
    [phone] => 123-456-7890
)
로그인 후 복사

두 배열의 요소 개수는 동일해야 합니다. 두 배열의 요소 수가 다른 경우 경고가 발생하고 FALSE가 반환됩니다.

4. array_map() 함수를 사용하여 각 요소에 새 키를 매핑합니다.

원래 배열을 수정하지 않고 각 요소에 새 키를 할당하려면 array_map() 함수를 사용할 수 있습니다. 이 함수는 지정된 배열의 각 요소에 함수를 적용하고 새 배열을 반환합니다.

예를 들어 다음 배열이 있다고 가정해 보겠습니다.

$names = array('John', 'Jane', 'Bob');
로그인 후 복사

이제 인덱스 번호를 키로 사용하여 해당 배열을 새 배열에 매핑한다고 가정해 보겠습니다. array_map() 함수와 익명 함수를 사용하여 이를 달성할 수 있습니다.

$names = array_map(function ($value, $index) {
    return array(
        'id' => $index,
        'name' => $value
    );
}, $names, array_keys($names));
로그인 후 복사

이제 $names 배열은 다음과 같습니다.

Array
(
    [0] => Array
        (
            [id] => 0
            [name] => John
        )

    [1] => Array
        (
            [id] => 1
            [name] => Jane
        )

    [2] => Array
        (
            [id] => 2
            [name] => Bob
        )
)
로그인 후 복사

이 함수는 새 배열을 반환한다는 점에 유의하세요. 원래 배열은 영향을 받지 않습니다.

요약

PHP에서는 여러 가지 방법을 사용하여 배열의 인덱스를 변경할 수 있습니다. 인덱스를 재배열하든, 각 요소에 새 키를 할당하든, 선택할 수 있는 다양한 기술과 기능이 있습니다. 가능한 주요 충돌을 피하도록 주의하면서 특정 요구 사항에 따라 적절한 방법을 선택하십시오.

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

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