2013-03-22 48 views
1

我試過了: - array_merge,函數和賦值給我的代碼中看到的數組。如何動態地完成它?我怎樣才能動態地給數組賦值? 這是我的數組: -安排基於鍵的數組

Array 
(
[data1] => Array 
    (
     [0] => 22nd March 
     [1] => 15th March 
     [2] => 22nd March 

    ) 
[data2] => Array 
    (
     [0] => 98 
     [1] => 100 
     [2] => 96 
    ) 

[data3] => Array 
    (
     [0] => h 
     [1] => q 
     [2] => w 
    ) 
) 

Desired output:- 
Array 
(
[0]=>Array 
    (
    [data1]=>22nd March 
    [data2]=>98 
    [data3]=>h 
    ) 
[1]=>Array 
    (
    [data1]=>15th March 
    [data2]=>100 
    [data3]=>q 
    ) 
[2]=>Array 
    (
    [data1]=>22nd March 
    [data2]=>96 
    [data3]=>w 
    ) 

回答

1
function arrange_array($arr) { 
    $finalarray = array(); 
    foreach($arr as $key => $val){ 
    foreach ($val as $subkey => $subvalue) { 
      $finalarray[$subkey][$key] = $subvalue; 
     } 
    } 
    return $finalarray; 
} 
1

你要找的操作稱爲「換位」。所以有點搜索導致this answer

function transpose($array) { 
    array_unshift($array, null); 
    return call_user_func_array('array_map', $array); 
} 
0

小邏輯和你在這個到達:

$req_array = array(); 

foreach($array as $key =>$value) 
{ 
    foreach($value as $subkey=>$subvalue) 
    { 
    $req_array[$subkey][$key] = $subvalue; 
    } 
    } 

echo "<pre>"; 
print_r($req_array); 
echo "</pre>";