嵌套的IF语句PHP

fra*_*zle 0 php

经过一段时间的努力 - 我有一个相当冗长的嵌套if语句,我正在研究如何改进它并使其更有效率.我确实想到了一个开关 - 但我看不出我怎么能分开它.

任何想法都赞赏

  $portfolioItems [$i] = array(//assign vars into array
  'imagePath' => '/sites/jda_redev/'.$myrow_home->path.'/thumbs/thumbs_'.$myrow_home->filename,
  'altText' => $myrow_home->alttext,
  'description' => $myrow_home->description,
  'client' => $extra_client->field_value,
  'job' => $extra_job->field_value,
  'channel' => $extra_channel->field_value,
  'channeltwo' => $extra_channeltwo->field_value,
  'channelthree' => $extra_channelthree->field_value,
  'channelfour' => $extra_channelfour->field_value,
  'channelfive' => $extra_channelfive->field_value,
  'sector' => $extra_sector->field_value,
  'workerone' => $extra_workerone->field_value,
  'workertwo' => $extra_workertwo->field_value,
  'gallery' => $galleryName,
  'mediaType' => $media_type->field_value,
  'videoName' => $video_name->field_value
  );

if ( $portfolioItems [$i]['imagePath'] == "" )
      {$portfolioItems [$i]['imagePath'] = " ";}
      if ( $portfolioItems [$i]['altText'] == "" )
      {$portfolioItems [$i]['altText'] = " ";}
      if ( $portfolioItems [$i]['description'] == "" )
      {$portfolioItems [$i]['description'] = " ";}
      if ( $portfolioItems [$i]['client'] == "" )
      {$portfolioItems [$i]['client'] = " ";}
      if ( $portfolioItems [$i]['job'] == "" )
      {$portfolioItems [$i]['job'] = " ";}
      if ( $portfolioItems [$i]['channel'] == "" )
      {$portfolioItems [$i]['channel'] = " ";}
      if ( $portfolioItems [$i]['channeltwo'] == "" )
      {$portfolioItems [$i]['channeltwo'] = " ";}
      if ( $portfolioItems [$i]['channelthree'] == "" )
      {$portfolioItems [$i]['channelthree'] = " ";}
      if ( $portfolioItems [$i]['channelfour'] == "" )
      {$portfolioItems [$i]['channelfour'] = " ";}
      if ( $portfolioItems [$i]['channelfive'] == "" )
      {$portfolioItems [$i]['channelfive'] = " ";}
      if ( $portfolioItems [$i]['sector'] == "" )
      {$portfolioItems [$i]['sector'] = " ";}
      if ( $portfolioItems [$i]['workerone'] == "" )
      {$portfolioItems [$i]['workerone'] = " ";}
      if ( $portfolioItems [$i]['workertwo'] == "" )
      {$portfolioItems [$i]['workertwo'] = " ";}
      if ( $portfolioItems [$i]['gallery'] == "" )
      {$portfolioItems [$i]['gallery'] = " ";}
      if ( $portfolioItems [$i]['mediaType'] == "" )
      {$portfolioItems [$i]['mediaType'] = " ";}
      if ( $portfolioItems [$i]['videoName'] == "" )
      {$portfolioItems [$i]['videoName'] = " ";}
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 8

foreach ($portfolioItems[$i] as $key => $val) {
  if ($val == "") {
    $portfolioItems[$i][$key] = " ";
  }
}
Run Code Online (Sandbox Code Playgroud)


Joe*_*ton 5

您可以使用foreach迭代来完成它:

foreach ($portfolioItems[$i] as &$value) {
    if($value == "") $value = " ";
}

// Thanks @Mark Baker, I forgot this very important line:
unset($value);
Run Code Online (Sandbox Code Playgroud)