PHP重置陣列為連續數位索引的三種方式

2020-07-16 10:06:01

PHP重置陣列為連續數位索引的三種方式

比如這樣的一個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));

輸出結果:

[[email protected] 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));

輸出結果:

[[email protected] 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!

以上就是PHP重置陣列為連續數位索引的三種方式的詳細內容,更多請關注TW511.COM其它相關文章!