我有时最终会在一个数组中创建数据,该数据从数组开始,位于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
)
)
所以我可以有效地遍历每个数组元素并将其输出给用户。
有关如何清理此阵列的任何帮助都会有用,谢谢。 :)
答案 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; ?>