За последние 24 часа нас посетили 22388 программистов и 1027 роботов. Сейчас ищут 633 программиста ...

Как убрать лишние элементы массива.

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

  1. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Добрый день. Допустим есть массив
    PHP:
    1. $arr [
    2.     [
    3.         'key' => 2,
    4.         'index' => 1,
    5.         'test' => 3,
    6.     ],
    7.     [
    8.         'key' => 2,
    9.         'index' => 1,
    10.         'test' => 3,
    11.     ],
    12.     [
    13.         'key' => 1,
    14.         'index' => 1,
    15.         'test' => 1,
    16.     ],
    17. ];
    как убрать дубли. Оставить например $arr[0], $arr[2];
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    unset($arr[1]); :)
     
  3. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    TeslaFeo нравится это.
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @Artur_hopf, вариант:
    PHP:
    1. $arrAux = $arr;
    2. $arr2 = array_filter($arr, function($v, $k) use (&$arrAux) {
    3.     unset($arrAux[$k]);
    4.     foreach($arrAux as $value) {
    5.         if($v === $value) {
    6.             return false;
    7.         }
    8.     }
    9.     return true;
    10. }, ARRAY_FILTER_USE_BOTH);
    --- Добавлено ---
    Ну, или полноценную функцию с вложенным циклом... первый из которых в представленном варианте симулирует array_filter() :)