Я пытаюсь вставить 7 ценовых значений в таблицу и закрасить самую низкую цену. Я не знаю где разместить $lowestprice
, Я знаю, что это плохой код, но он работал, пока я не попытался добавить цвет.
for ($i = 1; $i <= 7; $i++){
${"price".$i} = preg_replace($regexp, $match, ${"rawprice".$i});
if (preg_match('/'.$article.'/i', ${"stock".$i}))
{
$list[$i] = ${"price".$i};
$lowestprice = min($list);
if (preg_match('/^'.$lowestprice.'/i', ${"price".$i}))
{
echo ${"url".$i}." class=\"lowestprice\">".${"price".$i}." €</a></td>"; // lowest price in color with css
}
else
{
echo ${"url".$i}." class=\"price\">".${"price".$i}." €</a></td>";
}
}
else
{
echo "<td>Out of stock</td>";
}
}
Прежде всего, не используйте ${"string".$i}
Переменные типа. Хорошо, что это работает, конечно, но если вы работаете с данными, которые, кажется, следуют структуре массива, просто используйте массив. Меньше беспорядка, меньше драмы, все счастливы.
$ rawprice должен быть массивом, содержащим 7 целых чисел с 7 ценами в центах. Тогда вы бы сделали что-то вроде этого:
$lowestPrice = min( $rawPrice );
for( $i = 0; $i <= 6; $i++ ) {
if( inStock( $article[$i] ) ) {
$price = str_replace( ".", ",", (string) ($rawPrice[$i] / 100 ) );
if( $rawPrice[$i] == $lowestPrice ) {
$class = "lowestprice";
} else {
$class = "price";
}
echo "<td><a href=\"{$url[$i]}\" class=\"{$class}\">{$price} €</a></td>";
} else {
echo "<td>Out of stock</td>";
}
}
Других решений пока нет …