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)对数组进行排序,然后对该数组进行迭代,并将这些值分解并将它们放入另一个数组中,该数组将按前一个数组的顺序进行排序。