개발 꿀팁/PHP

PHP 배열이 연속 디지털 인덱스로 재설정되는 몇 가지 방법

Jammie 2022. 7. 15. 14:16
반응형

예를 들어, 이러한 php 배열은 다음과 같다.

$arr = array(
    1 => 'apple',
    3 => 'banana',
    5 => 'orange'
);

배열로 변환하려면

$arr = array(
    0 => 'apple',
    1 => 'banana',
    2 => 'orange'
);

1, 추천 방식 array_values 방법
이러한 방식은 일반 배열이든 관련 배열이든 모두 적용된다

<?php
 
$arr = array(
    1 => 'apple',
    3 => 'banana',
    5 => 'orange'
);
 
print_r(array_values($arr));
 
$arr1 = array(
    'name' => 'jerry',
    'age' => 16,
    'height' => '18cm'
);
 
print_r(array_values($arr1));

출력 결과:

[root@localhost php]# php array.php 
Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)
Array
(
    [0] => jerry
    [1] => 16
    [2] => 18cm
)

2, array_merge 사용법
이 방법은 배열이 하나만 주어지고 배열이 숫자일 경우인덱스의 경우 키 이름이 연속적으로 다시 인덱싱됩니다.그래서 디지털 인덱스에만 적용할 수 있다

<?php
 
$arr = array(
    1 => 'apple',
    3 => 'banana',
    5 => 'orange'
);
 
print_r(array_merge($arr));
 
$arr1 = array(
    'name' => 'jerry',
    'age' => 16,
    'height' => '18cm'
);
 
print_r(array_merge($arr1));

출력 결과:

[root@localhost php]# php array.php 
Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)
Array
(
    [name] => jerry
    [age] => 16
    [height] => 18cm
)

3. 순회하며 지나간다
가장 원시적인 방식은 비대하고 우아하지 못하여 극력 거부하였다

<?php
 
function resetArr($arr){
    $temp = array();
    foreach($arr as $v){
        $temp[] = $v;
    }
    return $temp;
}
 
$arr = array(
    1 => 'apple',
    3 => 'banana',
    5 => 'orange'
);
 
print_r(resetArr($arr));
 
$arr1 = array(
    'name' => 'jerry',
    'age' => 16,
    'height' => '18cm'
);
 
print_r(resetArr($arr1));

That‘s it!

반응형