У меня есть два таких массива:
$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. Этот процесс будет таким же для всех других переменных.
Как я могу это сделать??
вам нужно все в разных переменных? Зачем?
да, нужно каждый результат относить к отдельным переменным. Обратите внимание, что имя переменных не является динамическим. Он будет создан вручную.
Тогда вам обязательно стоит переосмыслить структуру данных. Это не профессионального уровня. Рассмотрим многомерный массив с ключами из уникальных значений в $array_2 и подмассивами, содержащими относительные данные из $array_1. Когда вы сгруппировали номера в их группы, вы можете просто добавить на них все array_sum() и готово.






Вместо отдельного имени переменной я предлагаю вам сделать такой массив
<?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);
Вы можете сделать это с помощью клавиатуры.