@Kerm

Можно ли этот foreach заменить на какую ни будь array функцию?

$answers['answers'] = [];
foreach ($query as $item) {
    $answers['answers'][] = ['id' => $item['qid'], 'aid' => $item['aid']];
}
  • Вопрос задан
  • 316 просмотров
Решения вопроса 3
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Используйте функцию array_map.

Мой пример:
array_map(function (Value $value) {
   return [
      'label' => $value->characteristic->name,
      'value' => $value->value,
   ];
}, $product->values);

Ваш пример:
$answers['answers'] = array_map(function ($item) {
   return [
      'id' => $item['qid'],
      'aid' => $item['aid'],
   ];
}, $query);
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$answers['answers'] = array_map(
  function($item) {
    return ['id' => $item['qid'], 'aid' => $item['aid']];
  },
  $query
);
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
array_reduce
$myFunc = function($carry, $item) {
  $carry[] = ['id' => $item['qid'], 'aid' => $item['aid']];
  return $carry;
}

$answers['answers'] = array_reduce($query, $myFunc, []);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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