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: 10 let
|
0