Сравните элементы массива и добавьте на основе ключа и значения

У меня есть два таких массива:

$array_1 = Array ( [0] => 4 [1] => 6 [2] => 2 [3] => 6 [4] => 4 [5] => 10 [6] => 4 [7] => 6 [8] => 2 [9] => 2 [10] => 4 [11] => 4 [12] => 2 [13] => 2 );

$array_2 = Array ( [0] => DK [1] => GA [2] => DK [3] => GA [4] => DK [5] => GA [6] => WE [7] => VE [8] => WE [9] => VE [10] => PLA [11] => PRA [12] => PLA [13] => PRA ) ;

Теперь мне нужен такой результат:

$dk=4+2+4=10;
$ga=6+6+10=22;
$we=4+2=6;
$ve=6+2=8;
$pla=4+2=6;
$pra=4+2;

Объяснение:

В $array_2'DK' существует 3 раза, а key values are = 0,2 and 4. Итак, мне нужно добавить значения $array_1 с key 0,2,4 и назначить их $dk. Здесь $dk будет 4+2+4=10. Этот процесс будет таким же для всех других переменных. Как я могу это сделать??

Вы можете сделать это с помощью клавиатуры.

Troyer 16.05.2018 13:16

вам нужно все в разных переменных? Зачем?

WM-SH-PD-TV-FC 16.05.2018 13:17

да, нужно каждый результат относить к отдельным переменным. Обратите внимание, что имя переменных не является динамическим. Он будет создан вручную.

Md. Shamvil Hossain 16.05.2018 13:20

Тогда вам обязательно стоит переосмыслить структуру данных. Это не профессионального уровня. Рассмотрим многомерный массив с ключами из уникальных значений в $array_2 и подмассивами, содержащими относительные данные из $array_1. Когда вы сгруппировали номера в их группы, вы можете просто добавить на них все array_sum() и готово.

mickmackusa 16.05.2018 17:23
Стоит ли изучать 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 и хотите разрабатывать...
2
4
29
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Вместо отдельного имени переменной я предлагаю вам сделать такой массив

<?php
$array_1 = [4,6,2,6];
$array_2 = [ 0=> "DK", 1=>"GA", 2=>"DK", 3=>"GA"];
$newArray = [];
foreach($array_2 as $key=>$value){
  if (isset($newArray[$value])){
    $newArray[$value] +=$array_1[$key];
  }else{
    $newArray[$value] =$array_1[$key];
  }
}
print_r($newArray);
?>

Живая демонстрация

Выход :

Array
(
    [DK] => 6
    [GA] => 12
)

Другое предложение: вместо этого при сложном программировании попытайтесь установить хорошие отношения или привязку, чтобы не получить несогласованности в записях

Это приведет к зацикливанию array2 и построению массива с суммой. Затем выведите его (просто чтобы увидеть результат), затем я использую extract, чтобы вытащить переменные по своему усмотрению. Но я бы предпочел оставить их в массиве

Foreach($array_2 as $key => $val){
    If(!isset($new[$val])) $new[$val] =0;
    $new[$val] += $array_1[$key];
}
Var_dump($new);
Extract($new);

https://3v4l.org/jOR7Z

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