私は、Facebookのようなウィジェットのようなものを実装しようとしています:
You, Name1, Name2 and 20 other people like this
この HTML を表示できるようにすべてのデータを取得しましたが、HTML 文字列を形成するための適切なアルゴリズムが見つからないようです。
and
私の主な問題は、文字列または,
(カンマ) 文字列をいつ配置するかわからないことです。名前を付けるだけならうまくいきますが、問題はYou
文字列が常に最初になければならないことです。
ここに自分のコードと、いくつかの特殊なケース (PHP の場合) で取得した出力を貼り付けます。
$current_user = 0;
$html = "";
$count = count($result);
$key = 0;
foreach($result as $liked){
if($key + 1 > $limit)
break;
if($liked->uid == $user->uid){
$current_user = 1;
continue;
}
$html .= "<a href='".$liked->href."'>".$liked->name."</a>";
if($key < $count - 2)
$html .= ", ";
elseif($key == $count - 2 && $key + 1 != $limit)
$html .= " and ";
$key++;
}
if($current_user){
$userHtml = "You";
if($count > 2)
$userHtml .= ", ";
elseif($count > 1)
$userHtml .= " and ";
$html = $userHtml.$html;
}
$html = "♥ by ".$html;
if($count > $limit){
$difference = $count - $limit;
$html .= " and ".$difference." ".format_plural($difference,"other","others");
}
return $html;
そして、現在のユーザーがこれを気に入った最後のユーザーであるという特別なケースでは、次のように表示されます。
♥ by You, admin, edu2004eu and
後ろにあるはずand
だったので、単語の後に何もないことに注意してください。しかし、私はそれを最初に置きました。You
何か助けはありますか?実際のコードではなく、ロジックだけが必要です。