Php 交换阵列键位置

Php 交换阵列键位置,php,arrays,sorting,swap,Php,Arrays,Sorting,Swap,我需要交换数组键 这就是我所拥有的 Array ( [0] => file1.pdf [1] => file2.pdf [2] => file3.pdf [3] => file4.pdf [4] => file5.pdf [5] => file6.pdf ) 这就是我需要的 Array ( [1] => file2.pdf [0] => file1.pdf

我需要交换数组键 这就是我所拥有的

  Array
  (
    [0] => file1.pdf
    [1] => file2.pdf
    [2] => file3.pdf
    [3] => file4.pdf
    [4] => file5.pdf
    [5] => file6.pdf
  )
这就是我需要的

  Array
  (
    [1] => file2.pdf
    [0] => file1.pdf
    [3] => file4.pdf
    [2] => file3.pdf
    [5] => file6.pdf
    [4] => file5.pdf
  )
我不知道数组有多大,但数组总是均匀的。
谁能帮我解决这个问题。

给你,希望能帮上忙

首先,我们创建新的数组,将新的有序数据放入其中。接下来,我们将遍历旧数组,并将自定义数据放入$newArr

<?php

$arr = array("file1.pdf", "file2.pdf", "file3.pdf", "file4.pdf", "file5.pdf", "file6.pdf");
$newArr = [];

$a = 0;
$arrCount = count($arr);

while (count($newArr) !== $arrCount) {
    $newArr[$a + 1] = $arr[$a + 1];
    $newArr[$a] = $arr[$a];
    $a = $a  +  2;
}

// Old array
print_r($arr);

// New array
print_r($newArr);

……为什么?我有一些页面需要按该顺序发送打印为什么需要保持索引不变?创建一个新数组,按特定顺序向其中添加数据并使用它。这是最简单的方法。
<?php
$array=Array
  (
    "file1.pdf",
    "file2.pdf",
    "file3.pdf",
    "file4.pdf",
    "file5.pdf",
    "file6.pdf"
  );
  $newarray=[];
  foreach ($array as $key => $value) {
      if($key & 1){
        $newarray[]=$array[$key];
        $newarray[]=$array[$key-1];
      }
  }
  array_push($newarray,$array[count($array)-1];
  $newarray=array_unique($newarray);
  echo "<pre>";
  print_r($newarray);
  echo "</pre>";
  ?>