如何避免以下PHP
代码中的34 overridden by 124
?我只想同时保留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 />';
}
PHP将始终将所有数字键视为整数,即使它们位于字符串变量或引号内。
以下内容可以使其非常明显:
<?php
$arr = [1 => 'hi', '2' => 'bye', 'a1' => 'hiha'];
var_export($arr);
解决方案是在不希望索引为整数的值前面加一个字母。
请注意,混合索引数组和关联数组表示严重缺乏组织,如果您还没有这样做,您稍后会后悔的。
您的数组索引无效。
您需要设计一个具有唯一键的数组,让PHP
来进行索引。您可以将索引"1"更改为唯一键的"1"。
如果你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