如何避免以下34 overridden by 124
代码中的PHP
?我只想保留34
和124
两者。
$arr = array(12, 34, "df"=>43, "1"=>124, 65);
$num = count($arr);
reset($arr);
for ($i = 1; $i <= $num; ++$i) {
echo 'The Current Position:' . key($arr);
echo '<br />';
echo 'The Current Value:'. current($arr);
next($arr);
echo '<br />';
echo '<br />';
}
答案 0 :(得分:1)
您的数组索引无效。
您需要设计一个包含唯一键的数组,让PHP
进行索引。你可以改变索引&#34; 1&#34;用&#34;一个&#34;对于唯一的密钥。
如果你print_r
你的阵列,你必须看到这样的结果
Array
(
[0] => 12
[1] => 124
[df] => 43
[2] => 65
)
因此,不要使用重复键创建数组,否则可能会丢失数据。
$arr = array(12, 34, "df" => 43, "one" => 124, 65);
foreach($arr as $key => $val){
echo $key." - ".$val."<br/>";
}
结果:
key - value
0 - 12
1 - 34
df - 43
one - 124
2 - 65
答案 1 :(得分:1)
PHP将始终将所有数字键视为整数,即使它们位于字符串变量或引号内。
以下内容可以说得非常明显:
<?php
$arr = [1 => 'hi', '2' => 'bye', 'a1' => 'hiha'];
var_export($arr);
解决方案是将不希望索引的值作为带整数的整数前缀。
请注意,混合索引和关联数组表明您将在以后遗憾的组织严重缺乏,如果您还没有。