填充数组的缺失或死亡索引而不重新编号php

时间:2013-12-15 17:56:50

标签: php arrays

如何将缺失的索引填充为空格,而无需重新编号数组的索引。

**array (size=3)
  0 => string '' (length=0)
  1 => string 'Man' (length=3)
  5 => string 'Mining' (length=6)**
例如,如何通过循环填充缺失索引中的空格,可以是foreach或for循环。 期望的输出:

 **array (size=3)
      0 => string '' (length=0)
      1 => string 'Man' (length=3)
      2 => string '' (length=0)
      3 => string '' (length=0)
      4 => string '' (length=0)
      5 => string 'Mining' (length=6)**

3 个答案:

答案 0 :(得分:2)

<?php
for($i=0; $i<count($array); $i++){
   if(!isset($array[$i]){
      $array[$i] = '';
   }
}

这很简单,但您应该探索为什么要尝试这样做,并找到更好的解决方案。

答案 1 :(得分:0)

你可以做这样的事情

<?php

$arr = array(0=>1,1=>2,10=>5); // Your array ...
$maxkey = array_search(max($arr),$arr); // Finding the highest key from your array (required to determine the iterations)

for($i=0;$i<$maxkey;$i++)
{
if(!array_key_exists($i,$arr)) // if key exists.. ignore .. else fill the element with space..
{
$arr[$i]='';
}
}
ksort($arr);// sorts the array using keys..
var_dump($arr);

输出:

Array
(
    [0] => 1
    [1] => 2
    [2] => 
    [3] => 
    [4] => 
    [5] => 
    [6] => 
    [7] => 
    [8] => 
    [9] => 
    [10] => 5
)

答案 2 :(得分:0)

使用array_pad

$a1 = array(0 => '', 1 => 'Man', 5 => 'Mining'); 
$a2 = array_pad(array(), max(array_keys($a1)), ''); 
$a = $a1 + $a2;