2015-02-11 16 views
0
$array = new array('mike will made-it', 'miley cyrus', 'wiz khalifa', 'juicy j'); 
  • 如果有一個元件:邁克將定製它
  • 如果兩個邁克製成-它英尺麥莉賽勒斯
  • 如果多於。 2 邁克的內容自動英尺麥莉賽勒斯,奇才哈利法和多汁 Ĵ

這裏是到目前爲止我所做的事情,但我認爲這是一個簡單而快速的方法來做到這一點。PHP打印數組值作爲歌曲標題

public function get_artist() { 
      $artists = 'Mike WiLL Made-It,Miley Cyrus,Wiz Khalifa, Juicy J'; 

      $artist_array = explode(',', $artists); 

      if(sizeof($artist_array) == 1) 
       return $artist_array[0]; 
      else if(sizeof($artist_array) == 2) { 
       return $artist_array[0] . ' ft. ' . $artist_array[1]; 
      } else if(sizeof($artist_array) > 2) { 
       //echo sizeof($artist_array); 
       $ar = ''; 
       foreach($artist_array as $k=>$v) { 
         if($k == 0) 
          $v .= ' ft. '; 
         else if($k > 0 && ($k < (sizeof($artist_array) - 2))) 
          $v .= ', '; 
         else if($k == (sizeof($artist_array) - 1)) 
          $v = ' and ' . $v; 

          $ar .= $v; 
       } 
       return $ar; 
      } 
     } 

回答

1

試試這個:

$result = ''; 
$index = 0; 
$count = count($artists); 

foreach ($artists as $artist) { 
    if ($count >= 2) { 
     if ($index === 1) { 
      $separator = ' ft. '; 
     } elseif ($index === $count - 1) { 
      $separator = ' and '; 
     } else { 
      $separator = ', '; 
     } 

     $result .= $separator; 
     $index++; 
    } 

    $result .= $artist; 
} 

return $result; 
+0

它的工作原理,但我需要顯示'和'最後藝術家之前,如果有3名或更多的藝術家像這樣的'邁克的內容自動英尺麥莉賽勒斯,威茲哈利法和多汁j' @羅布 – 2015-02-11 23:02:29

+0

對不起,我沒有注意到你的'和'。看到我編輯的答案。 – 2015-02-11 23:10:03

+0

謝謝我設法修復它''和'部分。看到我的答案。 – 2015-02-11 23:16:11

0
$result = ''; 

foreach ($artists as $k=>$v) { 
    if ($k == 1) { 
     $result .= ' ft. '; 
    } else if ($k > 1) { 
     if ($k <= sizeof($artists) - 2) { 
      $result .= ', '; 
     } else if ($k == sizeof($artists) - 1) { 
      $result .= ' and '; 
     } 
    } 

    $result .= $v; 
} 

return $result;