цикл if, как вывести из массива только нужную группу?

   <?php  
   $data = [
  [ 
    'name' => 'Grayson Allen' , 
    'group' => 'administrator', 
    'email' => '[email protected]', 
    'phone' =>'123-675-34'
  ],
  [ 
    'name' => 'Steven Adams' , 
    'group' => 'student', 
    'email' => '[email protected]', 
    'phone' =>'123-346-65'
 ],
 [ 
    'name' => 'Kostas Antetokoumpo' , 
    'group' => 'teacher', 
    'email' => '[email protected]', 
    'phone' =>'123-475-56'
 ],
 [ 
    'name' => 'Dwayne Bacon' , 
    'group' => 'administrator', 
    'email' => '[email protected]', 
    'phone' =>'123-787-67'
 ],
 ]  
 ?>
   из этого массива хочу показать только админов.
   if($date['group'] == 'administrator')
    <!-- как дальше-->
    <?php foreach ($data as $key => $crew):?>
       <?=$crew['group']?>
     <?php endforeach;?>
     

Ответы (1 шт):

Автор решения: valerius

if должно быть внутри цикла. Вы перебираете все элементы массива с помощью foreach и внутри цикла к текущему (рассматриваемому) элементу примеряете условие if .

<?php 
foreach ( $data as $crew_item ):
   // $crew_item - это одна группа из массива (по вашей терминологии) 
   if ( $crew_item['group'] == 'administrator' ):
      echo 'Администратор:' . PHP_EOL;
      echo 'имя: ' .$crew_item['name'] . PHP_EOL;
      echo 'email: ' .$crew_item['email'] . PHP_EOL;
      echo 'телефон: ' .$crew_item['phone'] . PHP_EOL;
   endif;
endforeach;
?>

PS Не рекомендуется использовать краткий вывод <?= Лучше писать <? echo

PPS Как правильно отметили в комментариях, начиная с PHP 5.4.0 <?= является кратким тегом для конструкции <?php echo и работает даже при отключенном short_open_tag. Поэтому нет ограничений на использование <?=

→ Ссылка