【问题标题】:Reverse an associative array with preserving keys in PHP在 PHP 中使用保留键反转关联数组
【发布时间】:2013-03-16 13:28:45
【问题描述】:

我花了半个小时,但我没有找到解决办法。

以下数组示例:

array(14) {
  ["label_text"]=> string(10) "Label text"
  ["e-mail"]=> string(6) "E-Mail"
  ["company"]=> string(7) "Company"
  ["last_name"]=> string(9) "Last name"
  ["first_name"]=> string(10) "First name"
}

我想做的只是反转元素,结果是这样的:

array(14) {
  ["first_name"]=> string(10) "First name"
  ["last_name"]=> string(9) "Last name"
  ["company"]=> string(7) "Company"
  ["e-mail"]=> string(6) "E-Mail"
  ["label_text"]=> string(10) "Label text"
}

必须有一个本机php,但我认为我是盲目的。我只是不知道该使用哪个功能。

任何帮助表示赞赏!

【问题讨论】:

    标签: php arrays associative-array


    【解决方案1】:

    反函数array_reverse呢?

    $reversed = array_reverse($array, true);
    

    文档:http://php.net/manual/en/function.array-reverse.php

    【讨论】:

      【解决方案2】:

      您正在寻找array_reverse() 函数:

      $new_array = array_reverse($old_array);
      

      【讨论】:

      • 会的。它们不是数字键。来自文档:非数字键不受此设置影响,将始终保留。
      • 这是不正确的。非数字关联数组不受此选项影响。
      【解决方案3】:

      使用array_reverse()

      array array_reverse (array $array [, bool $preserve_keys = false ])

      接受一个输入数组并返回一个新数组,其顺序为 元素颠倒了。

      注意:请务必阅读有关该函数第二个参数的文档。

      【讨论】:

      • 确保您也阅读了文档 ;) '非数字键不受此设置影响,将始终保留。'
      • 以这种方式保留数组键有什么用?
      • 可能没有用,它只是易于实现和描述的东西。 PHP 在将东西插入数组时似乎并没有改变它们的顺序。只需执行一个 foreach 语句并插入一个新数组
      【解决方案4】:

      就这样吧:

      $reversed = array_combine(
         array_reverse(array_keys($arr)),
         array_reverse(array_values($arr))
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多