2011-12-13 49 views
0

我有一個數組,其中包含本身包含兩種類型的條目的條目。PHP句柄陣列

爲了簡單起見,假設該條目是這樣的:

a|1 
b|4 
a|2 
c|5 
b|3 

在他們所代表類別和子在我的數據庫的事實。

我將使用explode將這些條目拆分爲字母和數字。

問題是:我想按類別對它們進行分組。

什麼是創建一個多級陣列的最簡單的方法,這可以通過字母來排序:

a|1 
a|2 
b|4 
b|3 
c|5 

+0

類似的東西http://stackoverflow.com/questions/2189626/php-how-to-group-a-multidimensional-array-by-a-particular-value – cristian

回答

2

這樣的事情呢?

$input = array('a|1','b|4','a|2','c|5','b|3'); 
$output = array(); 

foreach($input as $i){ 

    list($key,$val) = explode("|",$i); 
    $output[$key][] = $val; 

} 

輸出:

Array 
(
[a] => Array 
    (
     [0] => 1 
     [1] => 2 
    ) 

[b] => Array 
    (
     [0] => 4 
     [1] => 3 
    ) 

[c] => Array 
    (
     [0] => 5 
    ) 

) 
+0

這看起來不錯。有沒有辦法訪問鍵的值呢?我的意思是 - 除非我知道這些值,否則我怎麼會知道使用'a','b'和'c'? –

+0

爲此使用了'array_keys'。再次感謝 –

0
<?php 

$your_array = array(); 

$your_array[a] = array('1','2','3'); 
$your_array[b] = array('4','5','6'); 

print_r($your_array); 

?> 
+0

對不起,要回答這個問題print_r(arsort( your_array)); – njmu83

0

我認爲你的條目是字符串(靠,你想對他們使用explode()的事實)。

如果是這樣,您可以簡單地使用sort($array)對數組進行排序,然後對該數組進行迭代,並將這些值分解並將它們放入另一個數組中,該數組將按前一個數組的順序進行排序。