Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
 Аватар для nikkyt
0 / 0 / 0
Регистрация: 07.09.2018
Сообщений: 48

Как выбрать массив вложенный в котором содержатся несколько значений?

12.09.2018, 00:02. Показов 1087. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
имеем массив
PHP
1
2
3
4
5
6
  $shiny = [
    ["widther"=> "185", "profil"=> "65", "r"=> "17", "brand"=> "kama" ], //1
    ["widther"=> "190", "profil"=> "70", "r"=> "19", "brand"=> "rosava" ], //2
    ["widther"=> "185", "profil"=> "70", "r"=> "17", "brand"=> "goodyear" ], //3
    ["widther"=> "200", "profil"=> "65", "r"=> "17", "brand"=> "kama" ] //4
];
если искать так : то при выборе $parametr = [185]; получу строку 1 и 3, где встречается 185 если в массиве будет $parametr = [185, 17]; получу строку 1, 3 и 4 так как в 4 есть 17 , А мне нужно чтобы он сравнивал не по 1 значению а по всем которые в масиве т.е если $parametr = [185, 17]; значит нужно 1 и 4,
а если $parametr = [185, 17, "goodyear"]; тогда вернуть должен только 3
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$vibranye = array_filter($shiny, function (array $arr): bool {
      
      //данные которые мы ищем выбранные пользователем например они могут менятся
      $parametr = [185, 17];
      
 
      //берем одну строку перебираем каждый элемент
      foreach ($arr as $e) {
          //если есть нам нужный параметр "$parametr" в каком либо элементе возврращаем всю строку и записываем ее в $vibranye
          if (in_array($e, $parametr, true)) {
              return true;
          }
      }
      return false;
      });
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.09.2018, 00:02
Ответы с готовыми решениями:

Как работать с массивом в котором есть объект и вложенный массив?
let user = , { name:'abc', cost:'5', numbers:, count:{ props:4, area:7 } }]

Одинаковые id несколько значений, как выбрать нужное
Добрый день! Нужна Ваша помощь! Есть таблица: product_id__filter_id 1____________2 1____________3 1____________7 2____________2...

Одинаковые id несколько значений, как выбрать нужное
Добрый день! Нужна Ваша помощь! Есть таблица: product_id|filter_id 1|2 1|3 1|7 2|2 2|4 3|3 3|5

1
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
12.09.2018, 10:47
nikkyt, из основного массива нужно создать массив, где ключи это значения исходного. (если значения весомые, то можно использовать md5()).
Искомый массив так же надо преобразовать.
Далее вы делаете проходку по исходному с использованием array_diff_keys.
И если и далее сравниваете кол-во элементов искового и возвращенного.

Такой подход будет максимально быстрым, хотя можете попробовать и без пересборки, но с array_diff

Добавлено через 1 минуту
nikkyt, in_array в цикле будет кушать время. Если делать без array_diff_keys, то хотя бы через isset.

Добавлено через 4 минуты
Забыл написать, в созданном массиве значение записывайте как true, не используйте array_reverse
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.09.2018, 10:47
Помогаю со студенческими работами здесь

Как выбрать несколько минимальных значений в определенных категориях?
Здравствуйте! Есть проблема с созданием запроса по этому заданию: Отобразить самую дешевую книгу в каждой из следующих тематик:...

Как в форме Access сделать список, из которого можно выбрать не одно, а несколько значений?
Всем здравствуйте! Я совсем еще новичок в Аccess, поэтому очень прошу помочь: Как сделать форму (насколько я понимаю, это должна быть...

Выбрать сразу несколько значений из select-а
Добрый день! Нужно выбрать сразу несколько значений из select, и отправить запрос. Нужно как то изменить этот код select-а (запроса),...

Выбрать несколько минимальных значений в массиве
Добрый день, уважаемые ГУРУ. Программирую VBA впервые, хоть и есть небольшой опыт программирования на других языках, но это было давно. ...

Выбрать несколько значений в каждой группе
Здравствуйте! Есть таблица: A | B 1 | "a" 1 | "a" 1 | "abc" 1 | "ed" 2 | "q" 3 | "r" 3 | "r" 3 |...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru