За последние 24 часа нас посетили 21626 программистов и 1024 робота. Сейчас ищут 748 программистов ...

Выборка из массива

Тема в разделе "Сделайте за меня", создана пользователем Glomar, 29 окт 2018.

  1. Glomar

    Glomar Новичок

    С нами с:
    29 окт 2018
    Сообщения:
    3
    Симпатии:
    0
    Идёт массив значений, требуется удалить последнее значение у группы, которая начинается (строго) от 0 до 9, если группа начинается с 1 до 9 то вывести как есть. Так же диапазон от 0 до 9 может быть в середине массива. Тут не совсем решить за меня, но СПАСИБО)). У меня получилось сделать удаление последнего значения у группы из массива, только в том случае если оно в начале массива выдает "Пример [2025000]", а вот если идёт обрыв и потом где нибудь в середине появляется группа значений (строго) от 0 до 9, то уже не удаляет.
    [​IMG]
     
  2. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Тут нужны либо бутылка либо револьвер.
     
    selivanov нравится это.
  3. Glomar

    Glomar Новичок

    С нами с:
    29 окт 2018
    Сообщения:
    3
    Симпатии:
    0
    ТАК а что посоветуешь?
     
  4. Timofey

    Timofey Новичок

    С нами с:
    2 дек 2018
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Решение не самое быстрое, но, если я правильно понял задачу, то поможет.
    PHP:
    1. $data = [
    2.     2025002 => 1,
    3.     20250021 => 1,
    4.     20250022 => 1,
    5.     20250023 => 1,
    6.     20250024 => 1,
    7.     20250025 => 1,
    8.     20250026 => 1,
    9.     20250027 => 1,
    10.     20250028 => 1,
    11.     20250029 => 1,
    12.     2025003 => 2,
    13.     20250030 => 2,
    14.     20250031 => 2,
    15.     20250032 => 2,
    16.     20250033 => 2,
    17.     20250034 => 2,
    18.     20250035 => 2,
    19.     20250036 => 2,
    20.     20250037 => 2,
    21.     20250038 => 2,
    22.     20250039 => 2,
    23. ];
    24. // бежим по всем элементам массива
    25. // предполагаем что каждый элемент может быть группой
    26. foreach($data as $key => $val) {
    27.     // сюда считаем кол-во элементов в группе
    28.     $count_items_in_group = 0;
    29.     // тут пробегаем по всем элементам группы
    30.     // проверяем сколько элементов у текущей группы
    31.     for($i=0;$i<=9;$i++) {
    32.         // знаем что значение группы строго от 0 до 9
    33.         // поэтому проверяем присутствие элемента в группе
    34.         // путем добавления цифр от 0 до 9 к текущему номеру группы
    35.         if(isset($data[$key.$i])) {
    36.             $count_items_in_group ++;
    37.         }
    38.     }
    39.     // если у группы найдены все 10 элементов от 0 до 9
    40.     // то удаляем элемент под номером 9
    41.     if ($count_items_in_group == 10) {
    42.         unset($data[$key.'9']);
    43.     }
    44. }
    45. // сортируем для наглядности
    46. ksort($data,SORT_STRING);
    47. // проверяем результат
    48. print_r($data);