【问题标题】:Swap multidimensional array keys with php用php交换多维数组键
【发布时间】:2017-06-30 07:19:14
【问题描述】:

我有两个键,想在多维数组中交换它们。

我已经参考了这些Swap array values with phpHow to swap two values in array with indexes? 参考,但没有得到任何帮助。

我有这个数组,

[
    'box-a' => 'email',
    'box-b' => 'job',
    'box-c' => 'company',
    'box-d' => 'candidate',
    'box-e' => 'calender',
    'box-f' => 'smartlist',
    'box-g' => 'analytics',
]

我想交换两个数组键,box-bbox-e,但数组值应该保持原样。

我试过了,

list($array[$swap_a], $array[$swap_b]) = array($array[$swap_b], $array[$swap_a]);

但是没有成功。我哪里错了?

【问题讨论】:

    标签: php arrays multidimensional-array swap


    【解决方案1】:

    尝试使用临时数组,像这样:

    $a = [
    'box-a' => 'email',
    'box-b' => 'job',
    'box-c' => 'company',
    'box-d' => 'candidate',
    'box-e' => 'calender',
    'box-f' => 'smartlist',
    'box-g' => 'analytics',
    ];
    
    $temp = $a['box-e'];
    $a['box-e'] = $a['box-b'];
    $a['box-b'] = $temp;
    

    【讨论】:

      【解决方案2】:

      可以单行使用array_replace(),避免使用临时数据存储。

      代码:(Demo)

      $a = [
      'box-a' => 'email',
      'box-b' => 'job',
      'box-c' => 'company',
      'box-d' => 'candidate',
      'box-e' => 'calender',
      'box-f' => 'smartlist',
      'box-g' => 'analytics'
      ];
      
      var_export(array_replace($a,['box-b'=>$a['box-e'],'box-e'=>$a['box-b']]));
      

      输出:

      array (
        'box-a' => 'email',
        'box-b' => 'calender',
        'box-c' => 'company',
        'box-d' => 'candidate',
        'box-e' => 'job',
        'box-f' => 'smartlist',
        'box-g' => 'analytics',
      )
      

      【讨论】:

        猜你喜欢
        • 2021-11-26
        • 1970-01-01
        • 1970-01-01
        • 2011-09-20
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-25
        相关资源
        最近更新 更多