Как создать массив взгляда, если значение находится в массиве - PullRequest
0 голосов
/ 18 марта 2010

Как мне создать массив в smarty из заданной строки, такой как 22 || 33 || 50 и посмотреть, не является ли данное число похожим на числа выше в smarty?

У меня есть строка сказать

{$test->strings} // contains 33||12||80 

Я хочу посмотреть, если одно из чисел в {$test->strings} равно {$test->myday}

Ответы [ 3 ]

1 голос
/ 18 марта 2010

На мой взгляд, вы не должны получать представление (шаблон smarty) для выполнения каких-либо манипуляций с данными. Я бы преобразовал вашу строку в массив, прежде чем вы отправите ее в шаблон.

$str = "33||12||80";
$array = explode("||", $str);  // [33, 12, 80]

if (in_array($test->myday, $array)) {
    // it's in there
}
1 голос
/ 18 марта 2010

Не знаю о Smarty, но вот как бы вы делали это на чистом PHP:

if(in_array($test->myday, explode('||', $test->strings))) {
    // strings contains myday
}

Надеюсь, это поможет.

0 голосов
/ 18 марта 2010

Вы не должны делать такие вещи в шаблоне. Вы должны выполнить необходимые операции в вашей логике приложения (PHP) и передать результаты в шаблон.

Кстати: Smarty (и все Smarty-подобные двигатели) - это кусок ... мусора.

...