数组正在跳过一些价值指数

时间:2014-08-13 12:54:47

标签: php arrays

我正在尝试使用for循环遍历数组。但是,我正在工作的数组的值的索引没有正确构造。这意味着我可以找到索引号 8 的元素,索引号 9 没有元素, 8 之后的下一个元素是索引号的 11 即可。例如:

array (size=4951)
  8 => string '9,taobao.com
' (length=14)
  11 => string '10,linkedin.com
' (length=17)
  12 => string '11,amazon.com
' (length=15)
  19 => string '12,live.com
' (length=13)

我的问题是,如何才能使数组不跳过这样的索引?因此,当我尝试遍历数组时,它将通过索引 8 ,在那里找到9,taobao.com,然后在索引 9 上找到{{ 1}}。任何建议将不胜感激!

4 个答案:

答案 0 :(得分:1)

使用array_values

$arr = array_values($arr);

从0开始重新调整所有键。

答案 1 :(得分:1)

使用forisset的组合:

for ($i = $idx_start, $len = count($array); $i < $len; ++$i) {
  if (isset($array[$i])) {
    // Do your stuff
  }
}

答案 2 :(得分:0)

为什么不使用带键值的foreach循环(如果需要密钥)?

foreach($array as $key => $value) {
    // Treatment.
}

答案 3 :(得分:0)

您可以使用以下函数重新索引数组。 $reindexed_array = array_values(array_filter($array)); 希望它能回答你的问题。