|
<? Php
$ Arr = array
(
0 => array (
'1 @ 01,02 ',
'2 @ 01,02 ',
'4 @ all ',
'3 @ 01 ',
'5 @ 01,02, 04 ',
),
1 => array (
'1 @ 01,02, 03 ',
'2 @ 01,02, 04 ',
'3 @ all ',
'4 @ 01,02 ',
'2017 @ 111 ',
'5 @ 03 ',
),
2 => array (
'1 @ 01,02, 03 ',
'2 @, 05 ',
'3 @ all ',
'4 @ 01,02, 03 ',
'2017 @ 111 ',
'5 @ 03 ',
),
);
$ Result = array ();
Foreach ($ arr as $ items ){
If (is_array ($ items )){
Foreach ($ items as $ item ){
$ Item = explode ('@', $ item );
If (count ($ item )! = 2 ){
Continue;
}
$ Result [$ item [0]. = $ item [1]. ',';
}
}
}
Function reJoin (& $ item, $ key, $ seq ){
$ List = array_unique (explode ($ seq, $ item ));
If (in_array ('all', $ list )){
$ Item = $ key. '@ all ';
} Else {
$ Item = $ key. '@'. join ($ seq, $ list );
}
}
Array_walk ($ result, 'rejoin ',',');
Sort ($ result );
Var_export ($ result );
/**
* Array (
* 0 => '2017 @ 111 ,',
* 1 => '1 @ 01,02, 03 ,',
* 2 => '2 @ 01,02, 04,03, 05 ,',
* 3 => '3 @ all ',
* 4 => '4 @ all ',
* 5 => '5 @ 01,02, 04,03 ,',
*)
*/
?> |