例子:
$arr = array(
'apple' => 'sweet',
'grapefruit' => 'bitter',
'pear' => 'tasty',
'banana' => 'yellow'
);
我想调换柚子和梨子的位置,这样数组就变成了
$arr = array(
'apple' => 'sweet',
'pear' => 'tasty',
'grapefruit' => 'bitter',
'banana' => 'yellow'
)
我知道要切换的元素的键和值,有没有简单的方法可以做到这一点?还是需要一个循环 + 创建一个新数组?
谢谢
最佳答案
只是比 arcaneerudite 的解决方案更短、更简单:
<?php
if(!function_exists('array_swap_assoc')) {
function array_swap_assoc($key1, $key2, $array) {
$newArray = array ();
foreach ($array as $key => $value) {
if ($key == $key1) {
$newArray[$key2] = $array[$key2];
} elseif ($key == $key2) {
$newArray[$key1] = $array[$key1];
} else {
$newArray[$key] = $value;
}
}
return $newArray;
}
}
$array = $arrOrig = array(
'fruit' => 'pear',
'veg' => 'cucumber',
'tuber' => 'potato',
'meat' => 'ham'
);
$newArray = array_swap_assoc('veg', 'tuber', $array);
var_dump($array, $newArray);
?>
已测试,运行良好
关于php - 切换关联数组中的两个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2448345/