За последние 24 часа нас посетил 57761 программист и 7255 роботов. Сейчас ищет 2491 программист ...

Убрать повторы из ассоциативного массива по значению Дата

Тема в разделе "PHP для новичков", создана пользователем maxkuchin, 3 окт 2016.

Метки:
  1. maxkuchin

    maxkuchin Новичок

    С нами с:
    3 окт 2016
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток. Есть массив вида:
    Код (Text):
    1.  
    2. Array(
    3. [DATE] => Array
    4.         (
    5.             [ID] => 253
    6.             [TIMESTAMP_X] => 2016-09-26 16:44:35
    7.             [IBLOCK_ID] => 20
    8.             [NAME] => Дата рецепта
    9.             [ACTIVE] => Y
    10.             [SORT] => 500
    11.             [CODE] => DATE
    12.             [DEFAULT_VALUE] =>
    13.             [PROPERTY_TYPE] => S
    14.             [ROW_COUNT] => 1
    15.             [COL_COUNT] => 30
    16.             [LIST_TYPE] => L
    17.             [MULTIPLE] => N
    18.             [XML_ID] =>
    19.             [FILE_TYPE] =>
    20.             [MULTIPLE_CNT] => 5
    21.             [TMP_ID] =>
    22.             [LINK_IBLOCK_ID] => 0
    23.             [WITH_DESCRIPTION] => N
    24.             [SEARCHABLE] => Y
    25.             [FILTRABLE] => Y
    26.             [IS_REQUIRED] => N
    27.             [VERSION] => 1
    28.             [USER_TYPE] => Date
    29.             [USER_TYPE_SETTINGS] =>
    30.             [HINT] =>
    31.             [PROPERTY_VALUE_ID] => 1576103
    32.             [VALUE] => 27.09.2016
    33.             [DESCRIPTION] =>
    34.             [VALUE_ENUM] =>
    35.             [VALUE_XML_ID] =>
    36.             [VALUE_SORT] =>
    37.             [~VALUE] => 27.09.2016
    38.             [~DESCRIPTION] =>
    39.             [~NAME] => Дата рецепта
    40.             [~DEFAULT_VALUE] =>
    41.         )
    У каждого элемента есть своя дата, которая берется из массива. Вывод идёт через while {}
    Задача: убрать повторы элементов с одинаковой датой, то есть с одинаковым значением $array['DATE']['VALUE'].

    То есть надо создать новый массив и заполнить туда только уникальные значения.
    PHP:
    1. $new = array("DATA" => array());
    2. foreach($array as $arr)
    3. {
    4.     if(!in_array($arr, $new["DATA"]))
    5.     {
    6.         $new["DATA"][] = $arr;
    7.      
    8.     }
    9. }
    Что делаю не так?
     
    #1 maxkuchin, 3 окт 2016
    Последнее редактирование модератором: 3 окт 2016
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    PHP:
    1. foreach($array as $arr){
    2.   $newarray[$arr['DATE']['VALUE']] = $arr;
    3. }
     
    denis01 нравится это.