2014-05-06 84 views
0

我有一個數組是多維這樣PHP - 轉換多維數組二維數組

array(
    0 => array(
     'User' => array(
       'email' => '[email protected] ,[email protected]', 
       'username' => 'test,testuser', 
       'description' => 'description1,description2' 
       ) 
     ) 
); 

我想這個數組轉換成這種形式

$User = array(
    'email' => array(
     '[email protected]', 
     '[email protected]' 
    ), 
    'username' => array(
     'test', 
     'testuser' 
    ), 
    'description' => array(
     'description1', 
     'description2' 
    ) 
); 

幫助需要請!。

+3

考慮,以得到幫助閱讀此格式幫助文章:http://stackoverflow.com/editing-help#syntax-highlighting –

+0

你嘗試過什麼嗎?你可能想檢查php'explode' –

+0

幫助在閱讀一些手冊 –

回答

7

對於只有一個索引:

$arrayTwoD = array(); 
foreach ($valueMult[0]['User'] as $key => $value) { 
    $arrayTwoD[$key] = array_push(explode(',', $value)); 
} 

如果你有多個指標在$multArray

$arrayTwoD = array(); 
foreach ($multArray as $keyMult => $valueMult) { 
    foreach ($valueMult['User'] as $key => $value) { 
     $arrayTwoD[$keyMult][$key] = array_push(explode(',', $value)); 
    } 
} 

$arrayTwoD = array(); 
foreach ($multArray as $array) { 
    foreach ($array['User'] as $key => $value) { 
     $arrayTwoD[$key] = array_push(explode(',', $value)); 
    } 
} 
+1

這實際上是完美的。 +1 –

+1

謝謝@ShankarDamodaran;) –

+0

這隻適用於多數組只有一個條目 – Dwza

2

試試這個

$array = array(...); // your array data 
$formedArray = array(); 

foreach ($array as $arr) 
{ 
    foreach ($arr['user'] as $key => $value) 
    { 
     $formedArray[$key] = array_push(explode(",",$value)); 
    } 
} 

echo "<pre>"; 
print_r($formedArray); 
echo "</pre>"; 
1

這是一個有點重複,我知道,但你可以這樣做,以及:

foreach($array as $users) { 
    foreach($users as &$value) { // &value is assigned by reference 
     $users['users']["email"] = explode(",", $value['email']); 
     $users['users']["username"] = explode(",", $value['username']); 
     $users['users']["description"] = explode(",", $value['description']); 
    } 
} 

但在那之後,你需要使用$value。請參閱官方PHP manual documentation以瞭解更多關於&符號在此處所做的事情。

Demo

+0

如果你不會每次都重寫你的結果,你會在這裏遇到一件壞事......因爲你每次操縱foreach基數組......這個onley的工作原理是因爲沒有太多的數據和因爲你一直覆蓋它......如果你想阻止它被覆蓋......這可能會以無限循環結束 – Dwza