2012-10-24 221 views
2

從風格數組:排序多維數組PHP

Array 
(
    [0] => style1|000000 
    [1] => style2|ff6600 
) 

我做了這個這個循環

foreach($styles as $key=>$value){ 
    $sort_values[] = explode('|',$value); 
} 

**與print_r的($ sort_values)我得到:**

Array 
(
    [0] => Array 
     (
      [0] => style1 
      [1] => 000000 
     ) 

    [1] => Array 
     (
      [0] => style2 
      [1] => ff6600 
     ) 

) 

但是我需要它是:

Array 
(
    [styles] => Array 
     (
      [0] => style1 
      [1] => style2 
     ) 

    [links] => Array 
     (
      [0] => 000000 
      [1] => ff6600 
     ) 

) 

任何幫助表示讚賞謝謝!

+0

$ styles數組是什麼樣的? –

+0

@PhillPafford剛剛更新了問題 – Benn

+0

數據如何進入您的樣式數組?它來自文本嗎? –

回答

5

假設你輸入數組看起來像

array('style1|000000','style2|ff6600', 'style3|22ff22') 

你需要在你的循環多一點邏輯。

// Initialize output array with an empty styles subarray and a links subarray 
$out = array('styles'=>array(), 'links'=>array()); 
foreach ($styles as $key=>$value) { 
    // Loop over and split on the | 
    list($style, $link) = explode("|", $value); 
    // And append the two resultant values to their respective subarrays via [] 
    $out['styles'][] = $style; 
    $out['links'][] = $link; 

    // list() is a useful construct for producing readable results with small arrays, 
    // but I could also have used an array to receive the 
    // results of explode() 
    // $split = explode("|", $value); 
    // $out['styles'][] = $split[0]; 
    // $out['links'][] = $split[1]; 

} 
print_r($out); 

// Prints: 
Array 
(
    [styles] => Array 
     (
      [0] => style1 
      [1] => style2 
      [2] => style3 
     ) 

    [links] => Array 
     (
      [0] => 000000 
      [1] => ff6600 
      [2] => 22ff22 
     ) 

) 
+0

魔法,讓我旋轉了一下:)但美麗! – Benn

+1

@Benn _Logic_,不_magic_ –

+0

謝謝你的解釋! – Benn