| Autor | Zpráva | ||
|---|---|---|---|
| Enko Profil |
#1 · Zasláno: 24. 9. 2014, 12:08:30
Ahoj,
mám následující pole Array ( [0] => Array ( [login] => login1 [displayname] => jmeno1 [manager] => manager1 [date] => 2014-09-24 11:06:34 [unit] => Array ( [0] => unit1 ) ) [1] => Array ( [login] => login2 [displayname] => jmeno2 [manager] => manager2 [date] => 2014-09-24 11:06:34 [unit] => Array ( [0] => unit2 [1] => unit3 ) ) [2] => Array ( [login] => login3 [displayname] => jmeno3 [manager] => manager2 [date] => 2014-09-24 11:06:34 [unit] => Array ( [0] => unit4 [1] => unit5 ) ) ) A potřebuji z toho sestavit ( [0] => Array ( [manager] => manager1 [unit] => Array ( [0] => unit1 ) ) [1] => Array ( [manager] => manager2 [unit] => Array ( [0] => unit2 [1] => unit3 [2] => unit4 [3] => unit5 ) ) ) |
||
| Tori Profil |
#2 · Zasláno: 24. 9. 2014, 14:01:47
Dá se použít array_reduce + callback, ale normální foreach + zapisování do nového pole je rychlejší.
|
||
| Enko Profil |
#3 · Zasláno: 24. 9. 2014, 14:17:54
Děkuju za odpověď. Můžu poprosit o ukázku?
|
||
| Tori Profil |
$data = array(); // tohle je to zdrojové pole
$result = array_reduce($data, function($carry, $item) {
$carry[$item['manager']] = isset($carry[$item['manager']])
? array_merge($carry[$item['manager']], $item['unit'])
: $item['unit'];
return $carry;
}, array());
// anebo
$result = array();
foreach ($data as $item) {
$result[$item['manager']] = isset($result[$item['manager']])
? array_merge($result[$item['manager']], $item['unit'])
: $item['unit'];
} |
||
| Enko Profil |
#5 · Zasláno: 25. 9. 2014, 17:06:49
Tori:
Jj, děkuju :-) |
||
|
Časová prodleva: 12 let
|
|||
0