php中按键的特殊数组顺序


Special array order by key in php

你能帮我一下吗?

我有一个按键排序的数组:

$a['a'] = value;
$a['b'] = value;
$a['c'] = value;
$a['d'] = value;
$a['e'] = value;

我需要按照这个规则重新排序——把一个字段放在第一位,另一个不改变

初版

$a['c'] = value;
$a['a'] = value;
$a['b'] = value;
$a['d'] = value;
$a['e'] = value;

$a['d'] = value;
$a['a'] = value;
$a['b'] = value;
$a['c'] = value;
$a['e'] = value;

认为你的意思是:

function get_and_place_first($index, $array) {
    $new_first_element = $array[$index];       // save element you want to have as first
    unset($array[$index]);                     // delete that element from old position
    array_unshift($array, $new_first_element); // place it at the beginning of $array
}

你应该这样使用它:

get_and_place_first('c', $a);

,您应该从第一个示例中获得所需的效果。当然,你可能想检查元素是否存在于给定的数组等,但这取决于你。

从http://ykyuen.wordpress.com/2011/09/16/php-swap-array-elements-by-array-keys/

试试这个函数
function array_swap_assoc($key1, $key2, $array) {
  $newArray = array ();
  foreach ($array as $key => $value) {
    if ($key == $key1) {
      $newArray[$key2] = $array[$key2];
    } elseif ($key == $key2) {
      $newArray[$key1] = $array[$key1];
    } else {
      $newArray[$key] = $value;
    }
  }
  return $newArray;
}

代码示例:

<?php
  $temp = array('a' => 'A', 'b' => 'B');
  $temp = array_swap_assoc('a', 'b', $temp);
  print_r($temp);
?>