2013-02-18 54 views
1

如何重新安排:如何重新索引数组?

Array (
    [0] => tomato 
    [2] => apple 
    [3] => melon 
    [4] => Cherry 
    [7] => banana 
) 

要:

Array (
    [0] => tomato 
    [1] => apple 
    [2] => melon 
    [3] => Cherry 
    [4] => banana 
) 

+0

'排序()'会重新索引你的阵列,也重新排序/排序,这意味着苹果= 0,香蕉= 1等 – sascha 2013-02-18 13:43:14

+0

从另一个答案:array_splice($阵列, 0,0); – 2016-01-22 15:17:39

回答

9

只是array_values尝试:

$newArray = array_values($oldArray); 
+0

会'$ oldArray = array_values($ oldArray);'工作? – Floris 2013-02-18 13:45:53

+0

@弗洛里斯是的,它会。 – 2013-02-18 13:46:24

+0

是的,它会的。我用'$ newArray'命名了结果来显示它的工作原理。 – hsz 2013-02-18 13:46:32

3

这个怎么样?

$new_array = array(); 
foreach($original_array as $val) { 
$new_array[] = $val; 
} 

$new_array将具有正确的索引。

+1

如果您将其复制回原始数组,您将全部设置! – Floris 2013-02-18 13:43:35

0
$arr2 = array(); 
foreach($arr1 as $a) { 
    $arr2[] = $a; 
} 

将这些值放入一个新的新鲜数组中?

0

试试这个:

$a = array(0 => 'tomato', 2 => 'apple', 3 => 'melon', 4 => 'Cherry', 7 => 'banana'); 
print_r($a); 
$a = array_values($a); 
print_r($a); 
-1

只是不重新索引打扰。
使用foreach迭代它