2013-03-22 4 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>"; 
Смежные вопросы