在循环之前对数组项进行分组,然后在PHP中进行分组
我有一个数组,我无法轻松排序。我有一个值列表,我将其分解成一个数组,这会给我留下类似的东西在循环之前对数组项进行分组,然后在PHP中进行分组,php,sql,arrays,Php,Sql,Arrays,我有一个数组,我无法轻松排序。我有一个值列表,我将其分解成一个数组,这会给我留下类似的东西 $inStatement1 = "(54,120,53)" $inStatement2 = "(20,83)" $inStatement3 = "(11)" $inStatement4 = "(199)" 11:54 11:120 11:53 22:20 43:11 55:199 22:83 :前面的第一部分是类别标题,第二部分是子类别 所以我现在想循环这个数组,把喜欢的东西放在一起。因此,将所有类
$inStatement1 = "(54,120,53)"
$inStatement2 = "(20,83)"
$inStatement3 = "(11)"
$inStatement4 = "(199)"
- 11:54
- 11:120
- 11:53
- 22:20
- 43:11
- 55:199
- 22:83
$inStatement1 = "(54,120,53)"
$inStatement2 = "(20,83)"
$inStatement3 = "(11)"
$inStatement4 = "(199)"
因此,所有11岁组的子猫,22岁组的子猫,等等
我只是无法让逻辑循环通过原始列表,并能够将属于该组的所有子类别组合在一起
希望这有道理
有什么想法吗??谢谢 可以使用关联数组来存储类别和元素
$strings = array(
"11:54",
"11:120",
"11:53",
"22:20",
"43:11",
"55:199",
"22:83"
);
$categories = array();
foreach ($strings as $string) {
$exploded = explode(':',$string);
$head = $exploded[0];
$sub = $exploded[1];
if (!isset($categories[$head])) $categories[$head] = array();
$categories[$head][] = $sub;
}
print_r($categories);
这将产生:
Array
(
[11] => Array
(
[0] => 54
[1] => 120
[2] => 53
)
[22] => Array
(
[0] => 20
[1] => 83
)
[43] => Array
(
[0] => 11
)
[55] => Array
(
[0] => 199
)
)
然后,可以使用“内爆”将字符串组合成所需的字符串
$imploded = array();
foreach ($categories as $head => $subs) {
$imploded[$head] = '"('.implode(',',$subs).')"';
}
print_r($imploded);
这将为您提供字符串:
Array
(
[11] => "(54,120,53)"
[22] => "(20,83)"
[43] => "(11)"
[55] => "(199)"
)
该死这看起来是一个很好的解决方案!!明天早上我回来工作时,我会试一试,并会进行更新,但谢谢大家!迫不及待-必须测试它!非常好,非常感谢塞缪尔!