2015-02-16 10 views
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']; 
     } 
    } 

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

ответ

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; } 
); 
Смежные вопросы