2015-05-27 261 views
-5

我有这样的阵列多维PHP数组索引

Array 
    (
     [0] => Array 
      (
      [0] => 1 
      [1] => 2 
     ) 

     [1] => Array 
      (
      [0] => 3 
      [1] => 4 
     ) 

     [2] => Array 
      (
      [0] => 5 
      [1] => 6 
     ) 

     [3] => Array 
      (
      [0] => 7 
      [1] => 8 
     ) 

    ) 

我想这个数组是看起来像这样的:

Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => 5 
     ) 
    [1] => Array 
     (
      [0] => 3 
      [1] => 7 
     ) 
    [2] => Array 
     (
      [0] => 2 
      [1] => 6 
     ) 
    [3] => Array 
     (
      [0] => 4 
      [1] => 8 
     ) 
) 

我花了几乎24小时来完成这个任务。你可以理解,我需要帮助。请不要通过询问你曾尝试过什么来滥用我。任何人都可以完成此阵列工作?感谢


编辑:

我有此数组:

$yourArray = array(
    array(1,2), 
    array(3,4), 
    array(5,6), 
    array(7,8), 
); 

它输出这一项:

Array 
     (
      [0] => Array 
       (
       [0] => 1 
       [1] => 2 
      ) 

      [1] => Array 
       (
       [0] => 3 
       [1] => 4 
      ) 

      [2] => Array 
       (
       [0] => 5 
       [1] => 6 
      ) 

      [3] => Array 
       (
       [0] => 7 
       [1] => 8 
      ) 

     ) 

我想$ yourArray到输出这一项:

Array 
    (
     [0] => Array 
      (
       [0] => 1 
       [1] => 5 
      ) 
     [1] => Array 
      (
       [0] => 3 
       [1] => 7 
      ) 
     [2] => Array 
      (
       [0] => 2 
       [1] => 6 
      ) 
     [3] => Array 
      (
       [0] => 4 
       [1] => 8 
      ) 
    ) 

让我也写这个,我通过使用print_r($ yourArray)得到输出。当然还有使用键盘。希望这有助于

+0

究竟什么是你要去的模式?我的意思是,假设数组有100个元素,那么模式会是什么? – Mike

+0

究竟是什么模式重新排列事物? 1,3,2,4和5,7,6,8没有逻辑意义 –

+0

索引1 =索引0 + 4.为什么?没有订单? – frz3993

回答

0

在这里你去:

<?php 
$array = array(
    array(1,2), 
    array(3,4), 
    array(5,6), 
    array(7,8) 
); 

function processArray(&$array) { 
    for ($i = 0; $i < count($array); $i++) { 
     if ($array[$i][0] > 4) { 
      $array[$i][0] = $array[$i][0] - 3; 
     } 
     if ($array[$i][1] < 5) { 
      $array[$i][1] = $array[$i][1] + 3; 
     } 
    } 
} 

processArray($array); 
print_r($array); 

输出:

Array ([0] => Array ([0] => 1 [1] => 5) [1] => Array ([0] => 3 [1] => 7) [2] => Array ([0] => 2 [1] => 6) [3] => Array ([0] => 4 [1] => 8)) 
+0

最后,了解php的人。谢谢。这就像一个魅力。我想要的只是一个简单的for循环。谢谢。 – beegeesca

2

考虑做出什么OP我们明白了,相当严重,我认为这是你在找什么:

$yourArray = array(
    array(1,5), 
    array(3,7), 
    array(2,6), 
    array(4,8), 
); 

var_dump($yourArray); 

Demo

我真的不明白它是否严重。 解释一下自己。

+0

我觉得你的答案绝对准确(而且很搞笑),但我认为你在这里喂食巨魔。 – mmgross

+0

所以你知道如何回声与PHP。 – beegeesca

0

我没有看到图案,所以我看到的唯一可能性就是用手

$foo = [ 
    [1,2], 
    [3,4], 
    [5,6], 
    [7,8] 
]; 

$bar = [ 
    [$foo[0][0],$foo[2][0]], 
    [$foo[1][0],$foo[3][0]], 
    [$foo[0][1],$foo[2][1]], 
    [$foo[1][1],$foo[3][1]] 
]; 

print_r($bar); 

编辑 使用阵列(),而不是[]如果你使用PHP的旧版本。

+0

正如我在回答中写的,我没有看到这种模式。如果没有模式,你将如何编写一个循环,用相对大小对数据进行排序?如果你想多次使用它,只需将它放入函数中即可返回新的数组。在这种情况下无需使用循环。 – Karl

+0

foreach($ yourArray为$ 1){foreach($ one为$ 2){echo $ two;回声“ - ”;}} – beegeesca

+0

自己动手,如果你不能提供任何有用的信息,并认为一个循环是神奇的东西。 – Karl