фильтровать массив по аргументу значения ключа

0

У меня есть массив:

  $data = array(
      array('title'=>'test','rendor'=>0),
      array('title'=>'test2','rendor'=>1)
  );

Я ищу, используя одну из функций массива, чтобы вернуть значение ключа заголовка, когда rendor равен 1;

В настоящее время я делаю:

    $tmp = array();
    $deadTmp = array();
    foreach($tmpCols as $col){          
        if((int)$col['rendor'] !== 0){
            $tmp[] = $col;
        } else {
            $deadTmp[] = $col['title'];
        }
    }

Я пытаюсь изучить функции массива.

Теги:
arrays

1 ответ

0
Лучший ответ

array_reduce будет делать:

$titles = array_reduce($data, function (array $titles, array $datum) {
    if ($datum['rendor'] == 1) {
        $titles[] = $datum['title'];
    }
    return $titles;
}, []);

В качестве альтернативы:

$titles = array_map(
    function ($datum) { return $datum['title']; }, 
    array_filter($data, function ($datum) { return $datum['render'] == 1; }
);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню