Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Extalionez
-67 / 1 / 1
Регистрация: 11.12.2012
Сообщений: 145
1

Как найти все значения одного массива в другом многомерном массиве?

06.09.2017, 05:03. Просмотров 299. Ответов 1
Метки нет (Все метки)

Доброго времени суток! Вообще задача сначала стояла так, но перемучившись решил сложить это бремя на PHP. Итак... имею на выходе массив товаров, допустим
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$result = array(
  array(
    'id' => 1,
    'category_id' => 1
  ),
  array(
    'id' => 2,
    'category_id' => 2
  ),
  array(
    'id' => 3,
    'category_id' => 1
  ),
  array(
    'id' => 1,
    'category_id' => 2
  ),
)
Мне нужно выбрать айдишники товаров, которые одновременно находятся и в первой и во второй категории. То есть у меня есть ещё один массив со списком категорий, в которых должен находиться товар. Для данного примера мне нужно получить на выходе следующий массив
PHP
1
$out = array(1)// В моём массиве остался лишь айдишник 1, поскольку только у него есть category_id = 1 и category_id =2
В общем, как из вышеуказанного массива получить массив с айдишниками товара, который находится в категориях, указанных в другом массиве? Заранее огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2017, 05:03
Ответы с готовыми решениями:

Как без array_unique удалить из одного массива все значения, которые совпадают с значениями второго массива
Всем привет, не подскажете как без array_unique удалить из одного массива все...

Как в многомерном массиве найти значение ключа выше по иерархии ?
Например есть многомерный массив Array ( => Array( => а => б => в)...

Поиск значения в многомерном массиве, с неограниченной вложеностью
Всем привет! Помогите с многомерным массивом, нужно получить значение в...

Найти совпадение элемента одного массива в другом
Есть две базы данных MySQL. Нужно выбрать значения нескольких полей из одной и...

Найти макс число в многомерном массиве
Всем привет. Есть многомерный массив. Мне надо найти из него максимальное...

1
gbsoftware
120 / 116 / 77
Регистрация: 19.08.2013
Сообщений: 429
07.09.2017, 16:51 2
ну для двух категорий например так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$result = array(
  array(
    'id' => 1,
    'category_id' => 1
  ),
  array(
    'id' => 2,
    'category_id' => 2
  ),
  array(
    'id' => 3,
    'category_id' => 1
  ),
  array(
    'id' => 1,
    'category_id' => 2
  )
);
 
$cat_id_array = array(1, 2);
$in_cat_array = array();
 
foreach($result as $item){
    if(in_array($item['category_id'], $cat_id_array)){
        $in_cat_array[$item['category_id']][] = $item['id'];
    }
}
$result = array_intersect($in_cat_array[$cat_id_array[0]], $in_cat_array[$cat_id_array[1]]);
echo '<pre>';print_r($result);echo '</pre>';
?>
в принципе несколько модифицировав можно использовать для любого количества категорий
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2017, 16:51

Как сравнить обработать данные в многомерном массиве?
Есть такой многомерный массив: http://pastebin.com/wmTmw8ZR Какие операции...

Как подсчитать кол-во дублей в многомерном массиве?
выгрузил из бд таблицы, потом их объединил $result = array_merge ($bd1, $bd2,...

Как вывести данные сразу нескольких массивов в многомерном массиве?
надо вывести таблицу в 3 колонки &lt;?php foreach ($attribute_groups as...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru