【问题标题】:Swap array keys position交换数组键位置
【发布时间】:2017-06-28 21:43:01
【问题描述】:

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

  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
  )

我不知道数组有多大,但数组总是偶数。 有人可以帮我解决这个问题吗?

【问题讨论】:

  • ...........为什么?
  • 我有页面需要按该顺序发送打印
  • 那为什么还要保持索引不变呢?
  • 新建一个数组,按照特定的顺序往里面添加数据并使用。这是最简单的方法。

标签: php arrays sorting swap


【解决方案1】:

就是这样,希望对你有帮助。

首先我们创建一个新数组,我们将新的有序数据放入其中。接下来我们将遍历旧数组并将自定义数据放入 $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);

【讨论】:

    【解决方案2】:
    <?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>";
      ?>
    

    【讨论】:

      猜你喜欢
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2012-10-16
      • 1970-01-01
      相关资源
      最近更新 更多