php — Значения из одного массива вставить в ключи второго

Вопрос задан

Изменён 1 год 6 месяцев назад

Просмотрен 210 раз

День добрый! Подскажите пожалуйста, как значения из второго массива вставить вместо ключей первого? чтобы на выходе получилось вместо:

[1] => Array
            (
                [3] => Резисторы
                [5] => Варисторы
                [6] => Светодиоды
            )
    [Плата 1] => Array
            (
                [3] => Резисторы
                [5] => Варисторы
                [6] => Светодиоды
            )

Получился такой массив:

Array
    (
        [1] => Array
            (
                [3] => Резисторы
                [5] => Варисторы
                [6] => Светодиоды
            )
        [2] => Array
            (
                [4] => Резисторы
                [7] => Теристоры
            )
        [8] => Array
            (
                [9] => Конденсаторы
            )
    )
    Array
    (
        [1] => Плата 1
        [2] => Плата 2
        [8] => Плата 3
    )
  • php
  • массивы

для этого имеется функция array_combine()

первым параметром передаете массив ключей, воторым массив значений. получаете искомое

в предположении, что порядок исходных ключей двух массивов у вас соответствует друг другу, а не то что в первом 1-2-8 а во втором 8-2-1. в противном случае, можно отсортировать массив по ключам. Либо собрать руками

1

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

Функции для работы с массивами

Функции для работы с массивами

Сортировка массивов

array_change_key_case

Массивы

PHP Manual


См.

также is_array(), explode(), implode(), split(), preg_split() и unset().

  • array_change_key_case — Меняет регистр всех ключей в массиве
  • array_chunk — Разбивает массив на части
  • array_column — Возвращает массив из значений одного столбца входного массива
  • array_combine — Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений
  • array_count_values — Подсчитывает количество всех значений массива
  • array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_key — Вычисляет расхождение массивов, сравнивая ключи
  • array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_diff — Вычислить расхождение массивов
  • array_fill_keys — Создает массив и заполняет его значениями, с определенными ключами
  • array_fill — Заполняет массив значениями
  • array_filter — Фильтрует элементы массива с помощью callback-функции
  • array_flip — Меняет местами ключи с их значениями в массиве
  • array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_key — Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect — Вычисляет схождение массивов
  • array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс
  • array_keys — Возвращает все или некоторое подмножество ключей массива
  • array_map — Применяет callback-функцию ко всем элементам указанных массивов
  • array_merge_recursive — Рекурсивное слияние двух или более массивов
  • array_merge — Сливает один или большее количество массивов
  • array_multisort — Сортирует несколько массивов или многомерные массивы
  • array_pad — Дополнить размер массива определенным значением до заданной величины
  • array_pop — Извлекает последний элемент массива
  • array_product — Вычислить произведение значений массива
  • array_push — Добавляет один или несколько элементов в конец массива
  • array_rand — Выбирает одно или несколько случайных значений из массива
  • array_reduce — Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов
  • array_replace — Замена элементов массива элементами других переданных массивов
  • array_reverse — Возвращает массив с элементами в обратном порядке
  • array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденого элемента в случае удачи
  • array_shift — Извлекает первый элемент массива
  • array_slice — Выбирает срез массива
  • array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё
  • array_sum — Вычисляет сумму значений массива
  • array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
  • array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_unique — Убирает повторяющиеся значения из массива
  • array_unshift — Добавляет один или несколько элементов в начало массива
  • array_values — Выбирает все значения массива
  • array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива
  • array_walk — Применяет заданную пользователем функцию к каждому элементу массива
  • array — Создает массив
  • arsort — Сортирует массив в обратном порядке, сохраняя ключи
  • asort — Сортирует массив, сохраняя ключи
  • compact — Создает массив, содержащий названия переменных и их значения
  • count — Подсчитывает количество элементов массива или что-то в объекте
  • current — Возвращает текущий элемент массива
  • each — Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • end — Устанавливает внутренний указатель массива на его последний элемент
  • extract — Импортирует переменные из массива в текущую таблицу символов
  • in_array — Проверяет, присутствует ли в массиве значение
  • key_exists — Псевдоним array_key_exists
  • key — Выбирает ключ из массива
  • krsort — Сортирует массив по ключам в обратном порядке
  • ksort — Сортирует массив по ключам
  • list — Присваивает переменным из списка значения подобно массиву
  • natcasesort — Сортирует массив, используя алгоритм «natural order» без учета регистра символов
  • natsort — Сортирует массив, используя алгоритм «natural order»
  • next — Передвигает внутренний указатель массива на одну позицию вперёд
  • pos — Псевдоним current
  • prev — Передвигает внутренний указатель массива на одну позицию назад
  • range — Создает массив, содержащий диапазон элементов
  • reset — Устанавливает внутренний указатель массива на его первый элемент
  • rsort — Сортирует массив в обратном порядке
  • shuffle — Перемешивает массив
  • sizeof — Псевдоним count
  • sort — Сортирует массив
  • uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
  • uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
  • usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

Сортировка массивов

array_change_key_case

Массивы

PHP Manual

Насколько плохо иметь пробелы в ключах массива? — PHP — Форумы SitePoint

jjshell

1

Здравствуйте,
это проблема?

$array['Привет, как дела'] = 'хорошо';
 

и как добавить апостроф?

$array['Привет, как дела?'] = 'хорошо';
 

ФрлБ

2

jjshell:

Здравствуйте,

  1. это проблема?
$array['Привет, как дела'] = 'хорошо';
 
  1. а как добавить апостроф?
$array['Привет, как дела?'] = 'хорошо';
 

  1. Нет, это не проблема. Но это точно не приятно.
  2. Экранируйте его или используйте двойные кавычки.
$array['Привет, как дела?'] = 'хорошо';
$array["Привет, как дела?"] = 'хорошо';
 

Родни_Х

3

Почему бы не использовать подчеркивание, и если вам нужно напечатать значения ключей, просто выполните замену строки и замените подчеркивание пробелами.

Меня больше всего раздражает, когда дизайнеры используют пробелы в именах файлов: «мой файл.html» сводит меня с ума, поэтому, как вы понимаете, если бы я был вашим менеджером, я бы заставил вас изменить их…

jjshell

4

спасибо за ответы

lutrov

5

Родни_Х:

Почему бы не использовать подчеркивание, и если вам нужно вывести значения ключей, просто выполните замену строки и замените подчеркивание пробелами. Меня больше всего раздражает, когда дизайнеры используют пробелы в именах файлов: «мой файл.html» сводит меня с ума, поэтому, как вы понимаете, если бы я был вашим менеджером, я бы заставил вас изменить их…

Я не вижу ничего плохого в использовании пробелов для ключей массива. PHP поддерживает это. Кроме того, во многих случаях ключи массива содержат пробелы. Это очень удобно для «обратных» типов поиска, таких как:

.
    $countries['Австралия'] = 'au';
  $countries['Босния и Герцеговина'] = 'ba';
    $countries['Острова Кука'] = 'ck';
    $countries['Новая Зеландия'] = 'nz';
    
 
 Что касается косых черт, просто используйте
 
 добавляет слэш($var)
 

на ключ независимо. Он добавит обратную косую черту, только если ему нужно избежать кавычек.

маркл999

6

Почему бы не использовать подчеркивание, и если вам нужно вывести значения ключей, просто выполните замену строки и замените подчеркивание пробелами.

Просто имейте в виду, что если вы используете точку (.) в качестве имени поля в форме и т. д., тогда PHP автоматически преобразует его в символ подчеркивания. Итак, name=“some.value” становится “some_value” в массиве $_POST.

jjshell

7

хорошо спасибо

система Закрыто

8

Как устранить ошибку «неопределенный ключ массива» в PHP?

0,00/5 (Нет голосов)

Узнать больше:

PHP

У меня есть 3 флажка, которые пользователь может проверить, а затем отправить, и я пытаюсь распечатать имя флажка, который был отмечен как первый, но я продолжаю получать эти 2 ошибки —

Предупреждение: неопределенный ключ массива «плоды» в путь в строке… (число)

Предупреждение: попытка доступа к смещению массива по значению типа null в пути в строке… (число)

Вот код —

<тело>

php" method="post"> Яблоки:
Апельсины:
Груши:
<тип ввода="отправить"> <пред>

Вы видите, что есть оператор if, который закомментирован. Когда оператор if не закомментирован, эти 2 ошибки исчезают, однако результат все равно не печатается.

Кто-нибудь может мне помочь?

Что я пробовал:

много всего, особенно с иссетной частью кода php

Добавить решение


2 раствора

  • Самые популярные
  • Самые последние

Решение 1

Вы никогда не приводили оператор присваивания. Например,
Вы написали имя «фрукты []».
Вместо имени = «фрукты []».