我有一个数组,其中包含的项本身包含两种类型的项。
为简单起见,假设条目如下:
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)
对数组进行排序,然后迭代该数组并爆炸值并将它们放在另一个数组中,该数组将按前一个数组的顺序排序。