Возникли проблемы с преобразованием массива в php

у меня есть этот массив

[ 
    [[222] => 1 [333] => 2 [444] => 0],
    [[222] => 0 [333] => 2 [444] => 1],
    [[222] => 1 [333] => 2 [444] => 0]
]

где [222], [333], [444] — студенческие билеты
и 0 означает отсутствие 1 означает настоящее 2 означает уйти

я хочу, чтобы результат был

[ 'student_id' => '222'
  'present' => 2 /* total present*/
  'absent' => 1  /* total absent*/
  'leave'  => 0 /* total leave*/
],
[ 'student_id' => '333'
  'present' => 0 /* total present*/
  'absent' => 0  /* total absent*/
  'leave'  => 3 /* total leave*/
],

и т.п.

пожалуйста, дайте мне какое-нибудь решение в php-коде

Что вы пытались до сих пор решить эту проблему?

Rwd 20.07.2019 08:41

Я понятия не имею, как я могу решить эту проблему

Tushar Saha 20.07.2019 08:47

Вы используете ларавель?

Zeshan 20.07.2019 09:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
65
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это выглядит как значение JSON с соответствующими ключами. Вы можете сделать это, во-первых, вы можете упорядочить эти значения в массиве PHP с помощью foreach, а затем преобразовать этот массив в JSON.

foreach цикл — лучший способ получить доступ к каждой паре ключ/значение из массива.

foreach($featured as $key => $value){...}

$key => $value в цикле foreach относится к парам ключ-значение в ассоциативных массивах, где ключ служит индексом для определения значения вместо числа, такого как 0,1,2,... В PHP ассоциативные массивы выглядят так

$featured = array('student_id' => '111', 'present' => '2', etc.);

Ответ принят как подходящий

Это делает именно то, что вы хотите, но этот сайт не является службой кодирования, поэтому я действительно думаю, что вы должны потратить время, чтобы понять, как я это сделал, и в следующий раз попробовать что-то и поделиться этим в своем посте:

$array = [
    [
        "222" => 1, 
        "333" => 2,
        "444" => 0
    ],
    [
        "222" => 0, 
        "333" => 2,
        "444" => 1
    ],
    [
        "222" => 1, 
        "333" => 2,
        "444" => 0
    ]
];
$results = [];
foreach($array as $k=>$v){
    foreach($v as $id=>$value){
        if (!isset($results[$id])){
            $results[$id] = [
                'student_id' => $id,
                'present' => 0,
                'absent' => 0,  
                'leave'  => 0
            ];
        }
        if ($value == 0){
            $results[$id]['absent']++;
        }
        if ($value == 1){
            $results[$id]['present']++;
        }
        if ($value == 2){
            $results[$id]['leave']++;
        }
    }
}
$results = array_values($results);
print_r($results);

Другие вопросы по теме