改变PHP中关联数组索引的位置


Change position of an associative array index in PHP

我在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.
)

to like this

Array

([savedRows] => 1[success] =>成功保存。[errors] =>数组([0] =>系统已跳过这一行,因为您在"电子笔记本电脑"行号为"4"的字段"描述"中输入了无效值"。))

我想改变["errors"]索引位置从倒数第二和[success]索引位置在倒数第二。这是一个动态数组,而不是静态的,当函数调用函数返回时,我得到这个数组。

您可以使用数组函数,但到目前为止最简单的更改方法是:

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

但是它是一个关联数组,而不是一个数值数组,所以顺序不应该那么重要

您不需要使其过于复杂或使用任何花哨的函数。只需遵循几个简单的步骤。

  • 将errors子数组存储在另一个变量$errorField中。
  • 取消数组索引"errors"
  • 将$errorField附加到新键"errors"。

    $errorField = $array['errors'];
    unset($array['errors']);
    $array['errors'] = $errorField;
    

为什么数组的顺序很重要?

如果你真的需要在视觉上使用它,你应该在使用它之前初始化你的数组,并在填充它时覆盖它的值:

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

请注意,顺序应该无关紧要,如果有,则说明您有另一个问题需要解决。