2015-05-27 257 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