PHP的 - 组阵列者皆 [英] php - Group array by key
本文介绍了PHP的 - 组阵列者皆的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数组:
阵列(
A1=> 4,
A2=大于5,
B1=> 2,
B2=大于7,
C1=> 4,
C 2=大于5,
D1=> 4,
D2=大于5,
.....
)
现在我只想新的数组:
$ ARR1 =阵列(A=>阵列(A1=> 4,A2=> 5),B=>阵列( B1=大于2,B2=>中7),...)$ ARR2 =阵列(
0 =>阵列(A1=>中4,B1=大于2,C 1=→4,D1=→4),
1 =>阵列(A2=>中4,B2=大于2,C 2=→4,D2=→4)
)
帮我,我怎么能组数组?谢谢
解决方案
$ ARR =阵列(
A1=> 4,
A2=大于5,
B1=> 2,
B2=大于7,
C1=> 4,
C 2=大于5,
D1=> 4,
D2=大于5,
);ksort($改编,SORT_NATURAL);
$ ARR1 = $ ARR2 =阵列();
的foreach($改编为$关键=> $值){
$信= SUBSTR($键,0,1);
$指数=(INT)SUBSTR($键,1) - 1; !使用isset($ ARR1 [$号])及和放大器; $ ARR1 [$号] =阵列();
$ ARR1 [$函] [$关键] = $价值; !使用isset($ ARR2 [$指数])及和放大器; $ ARR2 [$指数] =阵列();
$ ARR2 [$指数] [$关键] = $价值;
}ksort($ ARR1,SORT_NATURAL);
ksort($ ARR2,SORT_NATURAL);后续代码var_dump($ ARR1,$ ARR2);
输出:
阵列(4){
[A] =>
阵列(2){
[A1] =>
INT(4)
[A2] =>
INT(5)
}
[B] =>
阵列(2){
[B1] =>
INT(2)
[B2] =>
INT(7)
}
[C] =>
阵列(2){
[C1] =>
INT(4)
[C2] =>
INT(5)
}
[D] =>
阵列(2){
[D1] =>
INT(4)
[D2] =>
INT(5)
}
}
阵列(2){
[0] =>
阵列(4){
[A1] =>
INT(4)
[B1] =>
INT(2)
[C1] =>
INT(4)
[D1] =>
INT(4)
}
[1] =>
阵列(4){
[A2] =>
INT(5)
[B2] =>
INT(7)
[C2] =>
INT(5)
[D2] =>
INT(5)
}
}
I have an array:
array(
"A1" => 4,
"A2" =>5,
"B1" => 2,
"B2" =>7,
"C1" => 4,
"C2" =>5,
"D1" => 4,
"D2" =>5,
.....
)
Now I just want to new array:
$arr1 = array("A"=>array("A1"=>4, "A2"=>5), "B" => array("B1" => 2, "B2" => "7"), ...)
$arr2 = array(
0=>array("A1"=>"4","B1"=>2,"C1"=>4,"D1"=>4),
1=>array("A2"=>"4","B2"=>2,"C2"=>4,"D2"=>4)
)
Help me, How can I group the array? Thanks
解决方案
$arr = array(
"A1" => 4,
"A2" =>5,
"B1" => 2,
"B2" =>7,
"C1" => 4,
"C2" =>5,
"D1" => 4,
"D2" =>5,
);
ksort($arr, SORT_NATURAL);
$arr1 = $arr2 = array();
foreach ($arr as $key => $value) {
$letter = substr($key, 0, 1);
$index = (int)substr($key, 1) - 1;
!isset($arr1[$letter]) && $arr1[$letter] = array();
$arr1[$letter][$key] = $value;
!isset($arr2[$index]) && $arr2[$index] = array();
$arr2[$index][$key] = $value;
}
ksort($arr1, SORT_NATURAL);
ksort($arr2, SORT_NATURAL);
var_dump($arr1, $arr2);
Outputs:
array(4) {
["A"]=>
array(2) {
["A1"]=>
int(4)
["A2"]=>
int(5)
}
["B"]=>
array(2) {
["B1"]=>
int(2)
["B2"]=>
int(7)
}
["C"]=>
array(2) {
["C1"]=>
int(4)
["C2"]=>
int(5)
}
["D"]=>
array(2) {
["D1"]=>
int(4)
["D2"]=>
int(5)
}
}
array(2) {
[0]=>
array(4) {
["A1"]=>
int(4)
["B1"]=>
int(2)
["C1"]=>
int(4)
["D1"]=>
int(4)
}
[1]=>
array(4) {
["A2"]=>
int(5)
["B2"]=>
int(7)
["C2"]=>
int(5)
["D2"]=>
int(5)
}
}
这篇关于PHP的 - 组阵列者皆的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文