PHP如何仅翻转数组中指定的键值对?
仅翻转PHP数组中指定键值对的方法
针对你给出的数组场景,要单独翻转某一组键值对,不用array_flip()(它会翻转整个数组),可以通过以下步骤实现:
单键值对翻转实现
$array_1 = [ 'Green' => 'Tea', 'Apple' => 'Juice', 'Black' => 'Coffee', ]; // 指定要翻转的目标键 $targetKey = 'Green'; // 安全处理:先确认键存在再操作,避免报错 if (isset($array_1[$targetKey])) { // 取出对应的值 $value = $array_1[$targetKey]; // 删除原数组中的该键值对 unset($array_1[$targetKey]); // 将翻转后的键值对存入数组 $array_1[$value] = $targetKey; } // 输出结果即为目标数组$array_2 print_r($array_1);
批量翻转多个键值对
如果需要一次性翻转多组键值对,只需把目标键放进数组循环处理即可:
$array_1 = [ 'Green' => 'Tea', 'Apple' => 'Juice', 'Black' => 'Coffee', ]; // 指定多个要翻转的键 $targetKeys = ['Green', 'Apple']; foreach ($targetKeys as $key) { if (isset($array_1[$key])) { $value = $array_1[$key]; unset($array_1[$key]); $array_1[$value] = $key; } } print_r($array_1);
原理说明
核心逻辑是:先取出目标键对应的值,删除原数组中的旧键值对,再以原数值作为新键、原键作为新值重新写入数组。加入isset()判断是为了避免因目标键不存在导致的运行错误。
内容的提问来源于stack exchange,提问作者YsabelaDev
相关产品推荐
相关产品推荐

