0

メニューのカテゴリ名を次のようにエコーアウトしています。

<?php echo $category['name']; ?>

ここで、'name' は配列です:

ピュリナドッグフード、ピュリナキャットフード、ユーカヌバドッグフード、ユーカヌバキャットフード、...

str_replace();サブストリング 'Dog Food' と 'Cat Food' がメニューに表示されないようにする方法がわかりません。

私は成功せずにこれを試しました(もちろん):

<?php echo $category['name']; str_replace("Cat Food", "", $category['name']); ?>

これに関するアイデアはありますか?

4

3 に答える 3

3

str_replace()配列を最初のパラメーターとして取り、それらを単一の値(2番目のパラメーター)に置き換えることができます。

str_replace(array('Cat Food', 'Dog Food'), '', $category['name']);
于 2013-02-01T01:39:53.643 に答える
2

John Condeの回答を使用するか、次のようなものを使用できます。

$category['name'] = preg_replace('/ (Cat|Dog) Food/i', '', $category['name']);

すべての出現をキャット/ドッグフードに置き換える必要があり、重複した名前を排除するために再度ループすることをお勧めします. サンプル: http://codepad.viper-7.com/kj883M

于 2013-02-01T02:06:00.607 に答える
0

また、strtrを使用することもできます。

$s = 'Cat Food, Dog Food';
$r = $category['name'];
echo strtr($s, array(
    'Cat Food' => $r,
    'Dog Food' => $r
));
于 2013-02-01T02:32:36.293 に答える