#php #arrays
#php #массивы
Вопрос:
Необработанные данные
Array
(
[admin] => Array
(
[Sep] => 1
[Aug] => 2
)
[student] => Array
(
[Sep] => 2
)
[trainer] => Array
(
[Jun] => 1
)
)
Я застрял в логическом мышлении, чтобы разделить вышеуказанные данные. Приведенный выше массив будет зацикливать все данные пользователя. Как я могу объединить их в один массив на основе месяца. Это будет выглядеть так, как показано ниже.
Array
(
[Jun] => Array
(
[admin] => 0
[student] => 0
[trainer] => 1
)
[Aug] => Array
(
[admin] => 2
[student] => 0
[trainer] => 0
)
[Sep] => Array
(
[admin] => 1
[student] => 2
[trainer] => 0
)
)
Текущий код
$uss = [];
foreach ($userCount as $vkey => $vvalue) {
foreach ($vvalue as $kgey => $vgalue) {
$uss[$kgey] = $vgalue;
}
}
Комментарии:
1. Что вы пробовали до сих пор? Только этот подход, и ничего больше? Почему бы не использовать внешний массив повторно для разных месяцев?
Ответ №1:
Я думаю, что ваш код должен быть таким —
$array = [
'admin' => [
'Sep' => 1,
'Aug' => 2,
],
'student' => [
'Sep' => 2,
],
'trainer' => [
'Jun'=> 1,
]
];
$uss = [];
$prepareKeys = [];
$onlyKeys = array_keys($array);
foreach ($onlyKeys as $value) {
$prepareKeys[$value] = 0;
}
foreach ($array as $vkey => $vvalue) {
foreach ($vvalue as $kgey => $vgalue) {
if(! isset($uss[$kgey])) {
$uss[$kgey] = $prepareKeys;
}
$uss[$kgey][$vkey] = $vgalue;
}
}