如何避免php数组中以前的值被后面的值覆盖?

如何避免php数组中以前的值被后面的值覆盖?,php,arrays,Php,Arrays,在下面的PHP代码中,如何避免34被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 Curren

在下面的
PHP
代码中,如何避免
34被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 />';
}
$arr=array(12,34,“df”=>43,“1”=>124,65);
$num=计数($arr);
重置($arr);
对于($i=1;$i)
您的数组索引无效

您需要设计一个具有唯一键的数组,让
PHP
进行索引。您可以将索引“1”更改为唯一键的“1”

如果
打印数组,则必须看到如下结果

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/>";
}

PHP将始终将所有数字键视为整数,即使它们位于字符串变量或引号内

以下几点可以很明显地说明这一点:

<?php

$arr = [1 => 'hi', '2' => 'bye', 'a1' => 'hiha'];

var_export($arr);

让PHP做索引就行了。你可以从数组中删除键。@Rizier123如果我想保留“1”作为124的键,如何处理它?在定义本身中,你不能对它做任何事情。你必须检查键是否已经存在,然后再覆盖它,
<?php

$arr = [1 => 'hi', '2' => 'bye', 'a1' => 'hiha'];

var_export($arr);