alex4answ
@alex4answ

Как оставить в массиве только разрешенные ключи?

Добрый день.
есть массив разрешенных полей, и массив с данными, нужно найти схождение:
$allowed = ['id', 'type', 'url'];
$data       = ['id' => 1, 'type' => 2, 'url' => 'toster.ru', 'other' => 'вот это уже лишнее'];

Как мне оставить только разрешенные поля?

Сейчас у меня только 2 решения:
1 - array_intersect_key (Но он работает только с ассоциативными массивами, придется allowed сделать не красивым)
2 - Перебрать цикл разрешенных и с его ключами сформировать новый вытянув значения из второго массива (Но я уверен что это какой-то костыль, и можно решить стандартными функциями языка)

array_intersect_ukey - работает непонятно, на рандом абсолютно будто сравнивает ключи, не подошло к сожалению.

Подскажите пожалуйста, как лучше сделать?

P.S. Мб в Yii уже есть реализация ? - в доках ArrayHelper я не нашел этого
  • Вопрос задан
  • 921 просмотр
Решения вопроса 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
$data = array_intersect_key($data, array_flip($allowed));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы