PHP处理数组


php handle arrays

我有一个数组,其中包含的项本身包含两种类型的项。

为简单起见,假设条目如下:

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

等。

实际上它们表示我的数据库中的类别和子类别。

我将使用explode将这些条目分解为字母和数字。

问题是:我想按类别对它们进行分组。

创建可以按字母排序的多级数组的最简单方法是什么?

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

?

这样怎么样?

$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
    )
)
<?php
$your_array = array();
$your_array[a] = array('1','2','3');
$your_array[b] = array('4','5','6');
print_r($your_array);
?>

我认为你的条目是字符串(依赖于你想在它们上使用explode()的事实)。

如果是这样的话,你可以简单地通过使用sort($array)对数组进行排序,然后迭代该数组并爆炸值并将它们放在另一个数组中,该数组将按前一个数组的顺序排序。