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

257
24 апреля 2017, 05:22

Есть переменная

$mas = array('1', '2', '5');

Формируется в зависимости от нужных значений id категорий. Также имеется вот такой массив, используется для хранения инфы о категориях

array {
   [1]=> array {
      ["id"]=> "1"
      ["parent_id"]=> ""
      ["name"]=> "color"
   }
   [2]=> array {
      ["id"]=> "2"
      ["parent_id"]=> "1"
      ["name"]=> "blue"
   }
   [3]=> array {
      ["id"]=> "3"
      ["parent_id"]=> "1"
      ["name"]=> "orange"
   }
   [4]=> array {
      ["id"]=> "4"
      ["parent_id"]=> "1"
      ["name"]=> "gray"
   }
   [5]=> array {
      ["id"]=> "5"
      ["parent_id"]=> "1"
      ["name"]=> "yellow"
   }
}

Подскажите, как вывести именно ключи из $mas

Answer 1

Первый вариант - простой для понимания. Предположим второй массив будет $mas2

foreach ($mas as $mas_value) {
  $result_mas[$mas_value]=$mas2[$mas_value];
}

В переменной $result_mas будет Ваш массив, ну а дальше крутите как хотите.

Второй вариант "элегантный", как в подсказал в комментариях @ArchDemon через array_keys думаю тоже сработает, но я спросонья сразу не соображу, надо потестить.

Answer 2

Страшненько, но работает :) Думаю, тут всё понятно

$mas1 = [1,3];
$mas2 = [['id'=>5],['id'=>4],['id'=>3],['id'=>2],['id'=>1]];
print_r(array_intersect_key($mas2, array_intersect(array_column($mas2, 'id'), $mas1))); // [ [id => 3], [id => 1] ] 

демо тут

READ ALSO
Помогите отредактировать код на php

Помогите отредактировать код на php

Суть его в том, что-бы подключиться к сайту Steam, взять один раз информацию через OpenID и записать ее в файл cachehtml

247
Проблема при установке модуля оплаты liqpay на Yii2

Проблема при установке модуля оплаты liqpay на Yii2

Всем добрый день! Есть небольшой вопрос, так как первый раз столкнулся с установкой модуля оплаты liqpay на Yii2Сначала все делал как было написано,...

320