Изменить положение индекса ассоциативного массива в PHP

php arrays

525 просмотра

3 ответа

У меня есть ассоциативный массив в PHP. Я хочу изменить положение индекса массива и его значение.

Array
(
    [savedRows] => 1
    [errors] => Array
        (
            [0] => System has Skipped this row, because you have enter not valid value "" for field "description" in sheat "Electronics Laptops" row number "4"
    )

    [success] => successfully saved.
)

нравится это

Array

([сохраненные строки] => 1 [успех] => успешно сохранены. [ошибки] => Массив ([0] => Система пропустила эту строку, поскольку вы ввели недопустимое значение "" для поля "описание" в оболочке ") Электроника ноутбуков "ряд № 4"))

я хочу изменить позицию индекса ["errors"] со второй на последнюю и позицию индекса [success] в секунду, когда когда-либо строится этот массив. Это динамический массив, а не статический, который он создает, когда вызов функции при возврате функции возвращает этот массив.

Автор: OBAID Источник Размещён: 08.11.2019 11:00

Ответы (3)


3 плюса

Решение

Вы можете использовать функции массива, но самым простым способом изменить их было бы:

$newRow = ['savedRows' => $oldRow['savedRows'],
           'success'   => $oldRow['success'], 
           'errors'    => $oldRow['errors']];

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

Автор: KIKO Software Размещён: 20.08.2016 07:21

3 плюса

Вам не нужно делать это слишком сложным или использовать какие-либо необычные функции. Просто выполните несколько простых шагов.

  • Сохраните вложенный массив ошибок в другой переменной $ errorField.
  • Сбросить индекс массива "ошибки"
  • Добавьте этот $ errorField к новому ключу «ошибки».

    $errorField = $array['errors'];
    unset($array['errors']);
    $array['errors'] = $errorField;
    
Автор: Object Manipulator Размещён: 20.08.2016 07:21

2 плюса

Почему порядок в массиве имеет значение?

Если вам это действительно нужно визуально, вы должны инициализировать свой массив перед его использованием и перезаписать значения при его заполнении:

$arr = [
  'savedRows' => 0,
  'success' => '',
  'errors' => [],
]
// the rest of your code

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

Автор: jeroen Размещён: 20.08.2016 07:17
Вопросы из категории :
32x32