如何在php中重新索引数组?

时间:2014-02-10 10:44:20

标签: php arrays indexing

我有一个这样的数组:

array(3) {
  [0]=>
  array(1) {
    [9802]=>
    array(1) {
      [7346]=>
      array(6) {
      ...
      }
    }
  }
  [2]=>
  array(1) {
    [12302]=>
    array(1) {
      [2013]=>
      array(6) {
      ...
      }
    }
  }
  [3]=>
  array(1) {
    [9041]=>
    array(1) {
      [7346]=>
      array(6) {
      ...
      }
    }
  }
}

我怎么能改变第一级的索引(只有第一级,没有递归),所以索引是[0],[1],[2]而不是[0],[2],[3]但仍然是订单?

4 个答案:

答案 0 :(得分:4)

使用array_values

$arr = array_values($arr);

答案 1 :(得分:3)

就像将当前值作为数组一样简单,用这个替换当前数组:

$array = array_values($array);

答案 2 :(得分:0)

TRY

<?php 
$arr=array(array("img","dummies","slides","01.jpg"),array("img","dummies","slides","01.jpg"),array("img","dummies","slides","01.jpg"));
print_r($arr);
echo $num_arr=count($arr);
for($i=0;$i<$num_arr;$i++)
{
    $new_key="key_".$i;
    $arr[$new_key] = $arr[$i];
    unset($arr[$i]);
}
print_r($arr);


?>

答案 3 :(得分:0)

试试这个

$array = array( 0 => 'string1', 2 => 'string2', 4 => 'string3', 5 => 'string4');
$arrays =$array;
print_r($array);
$array=array();
$i=0;
    foreach($arrays as $k => $item)
    {
    $array[$i]=$item;
        unset($arrays[$k]);
        $i++;

    }

print_r($array);

Demo