Php 将第一个键中的值从0更改为计数(数组)-1

Php 将第一个键中的值从0更改为计数(数组)-1,php,arrays,Php,Arrays,好的,我有一个这样的数组: $myArray[32]['value'] = 'value1'; $myArray[32]['type'] = 'type1'; $myArray[33]['value'] = 'value2'; $myArray[33]['type'] = 'type2'; $myArray[35]['value'] = 'value3'; $myArray[42]['value'] = 'value4'; $myArray[42]['type'] = 'type4'; 好的,

好的,我有一个这样的数组:

$myArray[32]['value'] = 'value1';
$myArray[32]['type'] = 'type1';
$myArray[33]['value'] = 'value2';
$myArray[33]['type'] = 'type2';
$myArray[35]['value'] = 'value3';
$myArray[42]['value'] = 'value4';
$myArray[42]['type'] = 'type4';
好的,正在寻找一种快速方法,将第一个键32、33、35和42中的所有数字改为0、1、2和3。但是我需要保留第二个键和所有的值。数组已经正确排序,因为我使用ksort对其排序,但是现在我需要从0-count($myArray)-1重置数组,并保持第二个键及其值不变


有人能帮我吗?

可能有更简单的解决方案,但这里有一个可行的解决方案:

$myArray = array();
$myArray[32]['value'] = 'value1';
$myArray[32]['type'] = 'type1';
$myArray[33]['value'] = 'value2';
$myArray[33]['type'] = 'type2';
$myArray[35]['value'] = 'value3';
$myArray[42]['value'] = 'value4';
$myArray[42]['type'] = 'type4';

$map = array_flip(array_keys($myArray)); // map old keys to new keys.
$newarray = array();
foreach($myArray as $key => $value) {
    $newarray[$map[$key]] = $value; // use new key and old value.
}

你不需要它。为什么不让这个阵列单独存在呢?不必要的移动将导致代码混乱。

因为第一个键索引链接到一个id,出于安全原因,我不希望其他人能够访问该id@是谁强迫你把钥匙打印出来的?在做之前试过思考吗?哈哈,当然,我试过了,我只是因为已经想得太多而累了,我已经经历了大脑放屁…哈哈,而且,我需要得到id作为第一个键,以便可以使用ksort()按id值排序。它必须被分类。但是在对它进行排序之后,我将它返回到一个其他人可以访问的数组中。所以它需要0索引。@sologhost用户没有访问您的数组的权限。感谢这项工作,我不知道使用数组_值也会保持第二个键索引的完整性。干杯:)
$myArray = array_values($myArray);