清理PHP数组以使其再次为0

时间:2009-12-05 16:43:21

标签: php arrays

我有时最终会在一个数组中创建数据,该数据从数组开始,位于25位而不是0位。

示例:

Array
(
    [16] => Array
        (
            [0] => http://rapidshare.com/files/268123830/hmh.fo3-oks.part01.rar
            [1] => Marked as illegal
        )

    [17] => Array
        (
            [0] => http://rapidshare.com/files/268124204/hmh.fo3-oks.part02.rar
            [1] => Marked as illegal
        )

    [18] => Array
        (
            [0] => http://rapidshare.com/files/268127882/hmh.fo3-oks.part03.rar
            [1] => Marked as illegal
        )
)

这是因为用户输入,而不是我的编码。我需要一种方法来清理数组,以某种方式再次使它成为0。清理后,上面的例子应该是这样的:

Array
(
    [0] => Array
        (
            [0] => http://rapidshare.com/files/268123830/hmh.fo3-oks.part01.rar
            [1] => Marked as illegal
        )

    [1] => Array
        (
            [0] => http://rapidshare.com/files/268124204/hmh.fo3-oks.part02.rar
            [1] => Marked as illegal
        )

    [2] => Array
        (
            [0] => http://rapidshare.com/files/268127882/hmh.fo3-oks.part03.rar
            [1] => Marked as illegal
        )
)

所以我可以有效地遍历每个数组元素并将其输出给用户。

有关如何清理此阵列的任何帮助都会有用,谢谢。 :)

3 个答案:

答案 0 :(得分:7)

使用array_values()。它会丢弃所有键并返回一个从零开始的数组,同时保留项的相对顺序。

答案 1 :(得分:2)

您可以使用array_values获取数组的值,其键将从0开始:

array array_values  ( array $input  )
  

array_values()返回所有内容   来自输入数组的值和   用数字索引数组。

在您的情况下,例如:

$a = array(
    16 => array(
        'http://rapidshare.com/files/268123830/hmh.fo3-oks.part01.rar', 
        'Marked as illegal'
    ),
    17 => array(
        'http://rapidshare.com/files/268123830/hmh.fo3-oks.part02.rar', 
        'Marked as illegal'
    ),
    18 => array(
        'http://rapidshare.com/files/268123830/hmh.fo3-oks.part03.rar', 
        'Marked as illegal'
    ),
);
$b = array_values($a);
var_dump($b);

会得到你:

array
  0 => 
    array
      0 => string 'http://rapidshare.com/files/268123830/hmh.fo3-oks.part01.rar' (length=60)
      1 => string 'Marked as illegal' (length=17)
  1 => 
    array
      0 => string 'http://rapidshare.com/files/268123830/hmh.fo3-oks.part02.rar' (length=60)
      1 => string 'Marked as illegal' (length=17)
  2 => 
    array
      0 => string 'http://rapidshare.com/files/268123830/hmh.fo3-oks.part03.rar' (length=60)
      1 => string 'Marked as illegal' (length=17)

答案 2 :(得分:0)

array_values()是其他答案提供的确切问题的正确答案,但您不需要这样做就可以简单地循环并输出给用户。只需使用foreach

<?php foreach($your_array as $item): ?>
    <div class='item'>
    <?php echo $item[0] ?>
    </div>
<?php endforeach; ?>