За последние 24 часа нас посетили 22944 программиста и 1239 роботов. Сейчас ищут 753 программиста ...

Работа с ассоциативным массивом

Тема в разделе "PHP для новичков", создана пользователем Воин Добра, 14 сен 2020.

  1. Воин Добра

    Воин Добра Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте, ув. формучане, проблема следующая:
    Есть ас. массив такого вида:
    PHP:
    1. [{"Нетто":"388","Товар":"Семечки"},{"Нетто":"10","Товар":"Семечки"},{"Нетто":"88","Товар":"Samsung Galaxy S10"}, {"Нетто":"11","Товар":"Samsung Galaxy S10"}]
    В нём нужно отфильтровать сколько содержится "Нетто" в определённом товаре. Должно получится что-то вроде этого:
    PHP:
    1. [{"Нетто":"398","Товар":"Семечки"},{"Нетто":"99","Товар":"Samsung Galaxy S10"}]
    Спасибо.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    PHP:
    1. <?php
    2.  
    3.  
    4. $a = [];
    5.  
    6. foreach ( $j = json_decode ( $string, true ) AS $k => [ 'Нетто' => $n, 'Товар' => $t ] )
    7. {
    8.     if ( isset ( $a[$t] ) )
    9.     {
    10.         $a[$t]['Нетто'] += $n;
    11.     }
    12.     else
    13.     {
    14.         $a[$t] = $j[$k];
    15.     }
    16. }
    17.  
    18. echo json_encode ( array_values ( $a ), JSON_UNESCAPED_UNICODE );
     
    Воин Добра нравится это.