7 эффективных методов замены имен ключей в ассоциативном массиве

Ассоциативные массивы — это часто используемые структуры данных, в которых хранятся пары ключ-значение. Иногда вам может потребоваться заменить или обновить имена ключей в ассоциативном массиве по разным причинам. В этой статье мы рассмотрим несколько методов решения этой задачи с использованием различных языков программирования, включая PHP, JavaScript и Python. Каждый метод будет сопровождаться примерами кода, демонстрирующими его использование.

Метод 1: цикл по массиву (PHP)

<?php
$array = array(
    'old_key1' => 'value1',
    'old_key2' => 'value2',
);
$newArray = array();
foreach ($array as $oldKey => $value) {
    $newKey = str_replace('old_', 'new_', $oldKey);
    $newArray[$newKey] = $value;
}

Метод 2: Object.keys() и Array.reduce() (JavaScript)

const array = {
    old_key1: 'value1',
    old_key2: 'value2',
};
const newArray = Object.keys(array).reduce((acc, oldKey) => {
    const newKey = oldKey.replace('old_', 'new_');
    acc[newKey] = array[oldKey];
    return acc;
}, {});

Метод 3: понимание словаря (Python)

array = {
    'old_key1': 'value1',
    'old_key2': 'value2',
}
newArray = {oldKey.replace('old_', 'new_'): value for oldKey, value in array.items()}

Метод 4: Коллекция Laravel (PHP)

use Illuminate\Support\Collection;
$array = [
    'old_key1' => 'value1',
    'old_key2' => 'value2',
];
$collection = new Collection($array);
$newCollection = $collection->mapWithKeys(function ($value, $oldKey) {
    $newKey = str_replace('old_', 'new_', $oldKey);
    return [$newKey => $value];
});
$newArray = $newCollection->all();

Метод 5: библиотека Lodash (JavaScript)

const _ = require('lodash');
const array = {
    old_key1: 'value1',
    old_key2: 'value2',
};
const newArray = _.mapKeys(array, (value, oldKey) => oldKey.replace('old_', 'new_'));

Метод 6: обновление словаря (Python)

array = {
    'old_key1': 'value1',
    'old_key2': 'value2',
}
newArray = {newKey: array[oldKey] for oldKey, value in array.items() if (newKey := oldKey.replace('old_', 'new_'))}

Метод 7: рекурсивная функция (PHP)

function replaceKeyRecursive($array, $oldKey, $newKey)
{
    if (!is_array($array)) {
        return $array;
    }
    $newArray = [];
    foreach ($array as $key => $value) {
        if ($key === $oldKey) {
            $key = $newKey;
        } elseif (is_array($value)) {
            $value = replaceKeyRecursive($value, $oldKey, $newKey);
        }
        $newArray[$key] = $value;
    }
    return $newArray;
}
$array = [
    'old_key1' => 'value1',
    'nested_array' => [
        'old_key2' => 'value2',
    ],
];
$newArray = replaceKeyRecursive($array, 'old_key1', 'new_key1');

В этой статье мы рассмотрели семь различных методов замены имен ключей в ассоциативном массиве с использованием PHP, JavaScript и Python. Эти методы предоставляют различные подходы для достижения желаемого результата, ориентированные на разные языки программирования и сценарии. Используя эти методы, вы можете эффективно обновлять имена ключей в ассоциативных массивах, улучшая согласованность и читаемость данных в ваших приложениях.