- $array Reorganization of an array:
- $array = Array (
- Array (' id ' =>1,' name ' = 'aa ',' pwd ' = ' + '),
- Array (' id ' =>1,' name ' = = 'bb ',' pwd ' = ' + '),
- Array (' id ' =>1,' name ' = 'saa ',' pwd ' = ' ") ',
- Array (' id ' =>2,' name ' = 'cc ',' pwd ' = ' + ')
- );
- The implementation code is as follows:
- $tmpArray = Array ();
- foreach ($array as $row) {
- $key = $row [' id '];
- if (array_key_exists ($key, $tmpArray)) {
- //$tmpArray [$key] [' pwd '] = $tmpArray [$key] [' pwd ']. ‘,‘ . $row [' pwd ']; In this sentence, the following conditional statements about PWD are removed to implement their string form
- if (is_array ($tmpArray [$key] [' name ']) {
- $tmpArray [$key] [' name '] [] = $row [' name '];
- } Else {
- $tmpArray [$key] [' name '] = Array ($tmpArray [$key] [' name '] , $row [' name ']);
- }
- if (is_array ($tmpArray [$key] [' pwd ']) {
- $tmpArray [$key] [' pwd '] [] = $row [' pwd '];
- } Else {
- $tmpArray [$key] [' pwd '] = Array ($tmpArray [$key [' pwd '], $row [' pwd ']);
- }
- } Else {
- $tmpArray [$key] = Array (' id ' = +$row [' id '],' name ' = =Array ($row [' name ' ]),' pwd ' = =Array ($row [' pwd ']); //This sentence to note that can be set
- //$tmpArray [$key] = $row;//You may replace the above sentence when there are fields added
- }
- }
- echo "<pre>";
- Var_dump ($tmpArray);
- Printing results are:
- Array (size=2)
- 1 =
- Array (size=3)
- ' id ' = int 1
- ' name ' + =
- Array (size=3)
- 0 = string ' AA ' (length=2)
- 1 = string ' BB ' (length=2)
- 2 = string ' saa ' (length=3)
- ' pwd ' =
- Array (size=3)
- 0 = string ' a ' (length=2)
- 1 = string ' All ' (length=2)
- 2 = string ' "" (length=2)
- 2 =
- Array (size=3)
- ' id ' = int 2
- ' name ' + =
- Array (size=1)
- 0 = string ' cc ' (length=2)
- ' pwd ' =
- Array (size=1)
- 0 = string ' + ' (length=2)
- $field is a one-dimensional array of numbers, $field [0] is a single field for grouping.
- public function combine ($array,$field) {
- $tmpArray = Array ();
- $distinct _field = $field [0];
- unset ($field [0]);
- foreach ($array as $row) {
- $key = $row [$distinct _field];
- if (array_key_exists ($key, $tmpArray)) {
- foreach ($field as $value) {
- if (is_array ($tmpArray [$key] [$value])) {
- $tmpArray [$key] [$value] [] = $row [$value];
- } Else {
- $tmpArray [$key] [$value] = Array ($tmpArray [$key] [$value], $row [$value]);
- }
- }
- } Else {
- $tmpArray [$key] [$distinct _field] = $row [$distinct _field];
- foreach ($field as $value) {
- $tmpArray [$key] [$value] = Array ($row [$value]);
- }
- }
- }
- return $tmpArray;
- }
PHP merges a field with the same array and reorganizes the data algorithm