Посчитать содержимое массива

94
29 декабря 2021, 17:40

Помогите, не могу решить следующую задачу на выборку из вложенных массивов.

      Array
(
    [0] => Array
        (
            [id] => 2
            [quanty] => 2
        )
    [1] => Array
        (
            [id] => 2
            [quanty] => 2
        )
    [2] => Array
        (
            [id] => 4
            [quanty] => 2
        )
)

Что бы на выходе было так:

id - 2 = 4 шт

id - 4 = 2 шт

Спасибо.

Answer 1
$input = array(
    array('id'=>2, 'quanty'=>2),
    array('id'=>4, 'quanty'=>2),
    array('id'=>2, 'quanty'=>2),
);
$sum = array();
for($i = 0; $i < count($input); $i++) {
    if(isset($sum[$input[$i]['id']])) {
        $sum[$input[$i]['id']] += $input[$i]['quanty'];
    } else {
        $sum[$input[$i]['id']] = $input[$i]['quanty'];
    }
}
print_r($sum);
Answer 2
$arr = [
    [
        'id' => 2,
        'quantity' => 2
    ],
    [
        'id' => 2,
        'quantity' => 2
    ],
    [
        'id' => 4,
        'quantity' => 2
    ],
];
$arr2 = [];
array_walk($arr, function ($item) use (&$arr2){
    @$arr2[$item['id']] += $item['quantity'];
});
foreach ($arr2 as $key => $val) {
    echo 'id - ' . $key . ' = ' . $val . PHP_EOL;
}
Answer 3
<?php
      $data=array(
    "0" => array(
            "id" => "2",
            "quanty" => "2"
        ),
    "1" => array(
            "id" => "2",
            "quanty" => "2"
        ),
    "2" => array(
            "id" => "4",
            "quanty" => "2"
        )
);
      foreach ($data as $key => $value) {
        $eniq[]=$value["id"];
        $mass[$value["id"]]=$value["quanty"];
      }
      $res=array_count_values ($eniq);
foreach ($mass as $key1 => $value1) {
    foreach ($res as $key2 => $value2) {
                                            if($key1==$key2){
$bin[$key1]=$value1*$value2.'шт';
        }
    }
}
print_r($bin);
?>
READ ALSO
MYSQL LEFT JOIN on each value JSON

MYSQL LEFT JOIN on each value JSON

Прошу помощи (mysql 57) В связи с большим количеством данных в таблице было принято решение хранить связи ячеек не в отдельной таблице как обычно...

99
Игра &quot;Виселица&quot; не работает коректно

Игра "Виселица" не работает коректно

Игра работает, но игрок выигрывает если он угадывает всего лишь одну любую букву, что не правильно, потому как игрок должен отгадатать все...

114
Помогите решить задачу с перебором классов и добавлением нового

Помогите решить задачу с перебором классов и добавлением нового

Есть множество div элементов с одинаковым классомПри переборе я должен найти тот div в блоке которого указано например буква 'h' и присвоить...

94
Атрибут Vue.js в сгенерированном html

Атрибут Vue.js в сгенерированном html

Мне нужно сделать обработчик события click для html элемента, который динамически генерируется с помощью vuejs(v-html)

148