0

現在のシナリオ:

テーブル「トピック」には、次の略語を含む行「タイプ」が含まれる場合があります。

  • ウェブ - W、
  • メール - E,
  • 電話 - P

それで

if ( isset($topic['type'])) {
echo $topic['type'];

通常、出力できます

W P

私の質問は、略語ではなく全文を出力し、全文から URL へのハイパーリンクを設定する方法です。

<a href='somesite.com/web'>Web</a> <a href='somesite.com/phone'>Phone</a>

私がこれまでに持っているもの:

if ( isset($topic['type'])) {
    $typeArr = explode(' ',$topic['type']);
    $fulldesc = array(
        'W' => $lang['textentryW'], // textentryW equals Web
        'E' => $lang['textentryE'], // Email
        'P' => $lang['textentryP'], // Phone
    );
    foreach ($fulldesc as $abc => $name) {
        if(in_array($abc, $typeArr))
            // mental blank !!!
    }
4

2 に答える 2

2

何かのようなもの:

if ( isset($topic['type'])) {
$typeArr = explode(' ',$topic['type']);
$fulldesc = array(
    'W' => $lang['textentryW'], // textentryW equals Web
    'E' => $lang['textentryE'], // Email
    'P' => $lang['textentryP'], // Phone
);
foreach ($typeArr as $type) {
    if(isset($fulldesc[$type])) {
        echo "<a href=\"somesite.com/" . strtolower($fulldesc[$type]) . "\">{$fulldesc[$type]}</a>";
    }
}
于 2013-02-25T02:50:27.490 に答える
0

最も単純なケースでは、次のものを使用できます。

 echo $fulldesc[ $topic["type"] ];

$fulldesc追加の怠惰のために、最終的な HTML/リンクを既に含めてください。

foreachはおそらく冗長です。予期しない略語が発生する可能性がある場合は、またはテストissetが必要です。in_array

if ( isset($topic['type'])) {
    $typeArr = explode(' ',$topic['type']);
    $fulldesc = array(
        'W' => $lang['textentryW'],
        'E' => $lang['textentryE'],
        'P' => "<a href='somesite.com/phone'>$lang[textentryP]</a>",
    );
    if (isset($fulldesc[ $topic["type"] ])) {
        echo $fulldesc[ $topic["type"] ];
    }
    else {
        echo "<a href='somesite.com/UNKNOWN'>$topic[type]</a>";
    }

また、トピック外の注意: $langgettext への移行を容易にするために、プレースホルダーには平易な英語を使用する必要があります。省略形はプログラミングの観点からは優れていますが、通常は保守が難しくなります。

于 2013-02-25T02:49:57.103 に答える