Для получения полного доступа
зарегистрируйтесь

Преобразование двумерного массива, в массив где ключ равен id(или любому другому уникальному полю) на примере Yii2


При сохранении груповых данных, зачастую требуется сопоставить, то-что у нас уже хранится в БД и то-что пришло с формы, для этого приходится сверять элименты по уникальному полю, данный снипет, из одной незамысловатой строки, вернет массив с уникальными ключами. Затем можно уже проверять на isset($models_by_id[$id]) или array_diff_key, ну и т.д.

$models_by_id=Model::find()->indexBy('id')->all(); //yii 2 path @mista twista

$models=Model::model()->findAll(); //yii 1
$models_by_id=array_combine(array_keys(CHtml::listData($models, 'id', 'id')),$models);

Другие варианты сниппета Отсортировано по рейтингу


  Рейтинг
+1

Преобразование двумерного массива, в массив где ключ равен id(или любому другому уникальному полю) на примере Yii2 12 авг. 2017 г., 23:17:53
При сохранении груповых данных, зачастую требуется сопоставить, то-что у нас уже хранится в БД и то-что пришло с формы, для этого приходится сверять элименты по уникальному полю, данный снипет, из одной незамысловатой строки, вернет массив с уникальными ключами. Затем можно уже проверять на isset($models_by_id[$id]) или array_diff_key, ну и т.д. ```php $models_by_id=Model::find()->indexBy('id')->all(); //yii 2 path @mista twista $models=Model::model()->findAll(); //yii 1 $models_by_id=array_combine(array_keys(CHtml::listData($models, 'id', 'id')),$models); ``` ```php $models_by_id=array_combine(array_column($model,'id'),$model); //since php5.5 ```

  • Автор: Insolita
  • Просмотров: 592

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация