下面我回显3个数字。其中一个数字是3中最低的。我可以使用什么函数来识别3中最低的一个,并在这种情况下将类text-success
更改为text-warning
?
我有很多3个数字的块,所以下面只是其中之一,所以我相信一个更"通用"的方法可能是理想的。
<p class="all-caps font-montserrat no-margin text-success "><?=mysql_result($stats, 0,4);?></p>
<p class="all-caps font-montserrat no-margin text-success "><?=mysql_result($stats, 1,4);?></p>
<p class="all-caps font-montserrat no-margin text-success "><?=mysql_result($stats, 2,4);?></p>
CSS规范不支持基于内容的选择,您可以在元素上匹配,元素中属性的名称和元素中命名属性的值。匹配命名属性值时,您正在进行类似字符串正则表达式的匹配,因此也找不到最低值。
现在,如果您对数字进行排序,您可以使用CSS:first-child或:last修饰符来选择第一个或最后一个元素。
如果您不订购,您可以获得两个选项:从PHP或javascript添加类。
PHP:注意,对于PHP,您应该使用mysqli与mysql,因为mysql已被弃用。
$arr =array () ;
while ( ($record =mysql_result ($stats, 1, 4)) )
$arr [] =$record ;
$min =array_reduce ($arr, function ($carry, $item) {
return (min ($carry, $item)) ;
}, PHP_INT_MAX) ;
foreach ( $arr as $key => $item ) {
?><p class="all-caps font-montserrat no-margin <?= $item <= $min ? 'text-warning' : 'text-success' ?>"><?= $item ?></p><?
}
使用JQuery 的javascript
var elt, min =Number.MAX_VALUE, arr =$('p.text-success') ;
for ( var i =0 ; i < arr.length ; i++ ) {
if ( arr [i] <= min ) {
min =parseInt (arr [i].text ()) ;
elt =arr [i] ;
}
elt.addClass ('text-warning').removeClass ('text-success') ;
将三个数字推入array
例如array(23, 9, 11);
然后
<?php
$min = min($numbers);
foreach ($numbers as $number) {
$class = ($number == $min) ? 'warning' : 'success';
echo "<p class='all-caps font-montserrat no-margin text-$class'>$number</p>";
}
?>
希望它能帮助
试试这个代码。此代码可以帮助您根据数据库结果放置块。
注意: 尝试使用mysqli或PDO语句,因为mysql扩展已弃用
<?php
$result = mysql_query("YOUR QUERY HERE");
//echo mysql_result($result, 4,9);
$values = array();
while ($row = mysql_fetch_array($result))
$values[] = $row[4];
$min = min($values);
foreach($values as $val)
{
$addstr = ($val == $min) ? "text-warning":"text-success";
echo '<p class="all-caps font-montserrat no-margin '.$addstr.'">'.$val.'</p>';
}
?>