在PHP中有函数array_values
$array2 = array_values($array1);
Run Code Online (Sandbox Code Playgroud)
$array2具有相同的值$array1,但关键是从
0到sizeof($array1) - 1.是否可以从旧密钥映射到新密钥?
编辑.我将在一个例子中解释:
$array1 = array( 'a' => 'val1', 'b' => 'val1');
$array2 = array_values( $array1 );
Run Code Online (Sandbox Code Playgroud)
所以现在array2有下一个值
$array2[0] = 'val1'
$array2[1] = 'val2'
Run Code Online (Sandbox Code Playgroud)
如何获得array3:
$array3['a'] = 0
$array3['b'] = 1
Run Code Online (Sandbox Code Playgroud)
要生成键映射,首先需要将键放入常规数组中,然后翻转键和值:
$array1_keymap = array_flip(array_keys($array1));
Run Code Online (Sandbox Code Playgroud)
例如:
$array1 = array(
'a' => 123,
'b' => 567,
);
$array1_values = array_values($array1);
$array1_keymap = array_flip(array_keys($array1));
Run Code Online (Sandbox Code Playgroud)
价值$array1_values:
array(
0 => 123,
1 => 567,
);
Run Code Online (Sandbox Code Playgroud)
价值$array1_keymap:
array(
'a' => 0,
'b' => 1,
);
Run Code Online (Sandbox Code Playgroud)
所以:
$array1['a'] == $array1_values[$array1_keymap['a']];
$array1['b'] == $array1_values[$array1_keymap['b']];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |