1

これは私が達成しようとしていることの非常に単純化された例です:

GIFT
sender  |  type
phil    |  1
phil    |  2

ここでは、1 = ケーキ、2 = マフィンです。

$table = query("SELECT sender, type FROM users WHERE sender = Phil");
foreach ($table as $row) {
$sender = $row['sender'];
$type = $row['type'];

echo '$sender has bought a $type';
}

これは出力します:

Phil has bought a 1
Phil has bought a 2 

代わりに以下の出力を取得するにはどうすればよいですか?

Phil has bought a cake
Phil has bought a muffin

配列を使用する必要がありますか?

 $type = array(
 1 => 'cake',
 2 => 'muffin'
 );

問題は、$type が既に $row['type'] として定義されていることです。

4

3 に答える 3

1

数値を名前に関連付ける連想配列を使用します。

$types = array(1 => 'cake', 2 => 'muffin');

次に、次のように使用します。

echo "$sender has bought a {$types[$type]}";

コード内の単一引用符ではなく、変数を文字列内で展開するには二重引用符を使用する必要があることに注意してください。

于 2013-08-25T02:34:50.510 に答える
0

あなたの例を考えると、次のような配列を使用します。

$items = array(
    "1" => "cake",
    "2" => "muffin"
);

次に、これを行います:

echo "$sender has bought a {$items[$type]}";
于 2013-08-25T02:34:11.193 に答える