php - 切换关联数组中的两个项目

标签 php arrays

例子:

$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/

相关文章:

javascript - 如何根据另一个数组分离一个数组

JavaScript JSON 数组编号不一致

javascript - 如何将数组转换成json对象?

php - 在服务器上找不到 Silex 'App\Controller\IndexController'

php - 图片位置中断响应

php - 是否可以在 PHP 中使用指针?

javascript - 根据文本将字符串数组转换为数组或 JSON

php - 代码点火器 : SQL join causing duplicate results

php - 从一张表返回结果

c++ - 为什么在为数组分配新值时会崩溃?