Присвоить значения в массиве на основе ключей массива

Как изменить массив на основе значения в качестве ключа?

array(
    array(
        "name" => "BIBAR",
        "cutoff" => 20220725,
        "totals" => 5614
    ),
    array(
        "name" => "BIBAR",
        "cutoff" => 20220810,
        "totals" => 5614
    ),
    array(
        "name" => "BIBAR",
        "cutoff" => 20220825,
        "totals" => 5614
    )
);

Я пробовал следующее, но это не работает:

foreach($cutoffs as $catoff) {
    $ii = 0;
    $sums[$ii][$catoff] = array_filter($array, function($val){
        return $val['cutoff'] === $catoff ? $val['totals'] : $val;
    });
    $ii++;
}

Мой желаемый массив:

array(
    '20221025' => array(
        12345,
        12343,
        24442
    ),
    '20221110' => array(
        3443,
        744334
    )
)

Я застрял здесь на несколько часов ... Пожалуйста, помогите

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
0
2
69
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

function changeArr($data){
    $new = [];
    foreach ($data as $v){
        $new[$v['cutoff']][] = $v['totals'];
    }
    return $new;
}

Пожалуйста, не просто выбрасывайте код в качестве ответа, всегда добавляйте объяснение того, в чем может быть проблема, и как ваш код решает проблему OP, чтобы другие могли учиться. Спасибо

brombeer 20.11.2022 12:33
Ответ принят как подходящий

ЕСЛИ «имя» не имеет значения, я думаю, что предыдущий ответ тоже подойдет. Если этот код «не работает», то ваше объяснение может быть неправильным, поэтому вам нужно либо объяснить лучше, либо привести нам больше примеров — имейте в виду, что в вашем примере ввод и вывод сильно отличаются — ввод, который вы дали, не работает. соответствовать вашему выводу.

Мой код:

$a = array(
    array(
        "name" => "BIBAR",
        "cutoff" => 20220725,
        "totals" => 5614
    ),
    array(
        "name" => "BIBAR",
        "cutoff" => 20220810,
        "totals" => 5614
    ),
    array(
        "name" => "BIBAR",
        "cutoff" => 20220725,
        "totals" => 1234
    )
);

print_r($a);


echo "\n================================\n\n";

$newArr = [];

foreach ($a as $k => $vArr) {
    // maybe some validation would be useful here, check if they keys exist
    $newArr[$vArr['cutoff']][] = $vArr['totals'];
}

print_r($newArr);

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