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

时间:2016-08-20 07:13:15

标签: php arrays

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

(        [savedRows] => 1        [success] =>成功保存。        [errors] =>排列             (                 [0] =>系统已跳过此行,因为您已在“电子笔记本电脑”行号“4”中为字段“description”输入无效值“”             )     )

我希望将 [“errors”] 索引位置从第二个更改为最后一个,并在此次数组构建时将 [success] 索引位置更改为秒。这是一个动态数组,而不是它在函数函数调用返回时构建的静态我得到这个数组。

3 个答案:

答案 0 :(得分:3)

你不需要太复杂或使用任何花哨的功能。只需按照几个简单的步骤即可完成。

  • 将errors子数组存储在另一个变量$ errorField中。
  • 取消设置数组索引"错误"
  • 将此$ errorField附加到新密钥"错误"。

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:2)

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

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

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

请注意,顺序无关紧要,如果有,则还有其他问题需要修复。