Как решить задачу без использования циклов?

Добрый день!
Решил из задачи только вариант с циклами, подскажите, как решить данную задачу без использования циклов?

Задача:
Имеется массив вида:
$list = [
[
'id' => 1,
'isAllowed' => false
],
[
'id' => 2,
'isAllowed' => true
],
[
'id' => 3,
'isAllowed' => true
],
[
'id' => 4,
'isAllowed' => true
],
[
'id' => 5,
'isAllowed' => false
]
];

Необходимо собрать массив, состоящий из значений полей id элементов, у которых поле isAllowed установлено в true. При этом надо реализовать вариант с циклом и без него (используя стандартные функции для работы с массивами).

Решение:
<?php
$list = [
[
'id' => 1,
'isAllowed' => false
],
[
'id' => 2,
'isAllowed' => true
],
[
'id' => 3,
'isAllowed' => true
],
[
'id' => 4,
'isAllowed' => true
],
[
'id' => 5,
'isAllowed' => false
]
];

$arrayId = [];

foreach ($list as $arr)
{if ($arr["isAllowed"]===true) $arrayId[]=$arr["id"];}
print_r($arrayId);
?>
  • Вопрос задан
  • 194 просмотра
Решения вопроса 2
0xD34F
@0xD34F
array_column(array_filter($list, function($n) {
  return $n['isAllowed'];
}), 'id')
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Пригласить эксперта
Ваш ответ на вопрос

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

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