2017-05-29 40 views
-3

假设我有一个具有不同和重复值的数组,如 ['zaid','zaid','ali','khan','khan','zaid','jhone ”,‘jhone’]更改CLASS为阵列中的每个索引

我想要什么,

我想用同样的方式显示与同BG-COLOR每重复值。

喜欢:

<span style="background-color:#ddd">ZAID</span> 
<span style="background-color:#ddd">ZAID</span> 
<span style="background-color:#E55">ALI</span> 
<span style="background-color:#099">Khan</span> 
<span style="background-color:#099">Khan</span> 
<span style="background-color:#ddd">ZAID</span> 
<span style="background-color:#055">JHONE</span> 
<span style="background-color:#055">JHONE</span> 

我做现在这个样子,你连击明白我想要什么。

$ row ['who_first_check']是一个逗号分隔的字符串。

$checkerNames = explode(",",$row['who_first_check']); 
$i    = 0; 
$a    = 'a'; 
foreach($checkerNames as $cnName){ 
    echo '<span class="userCheck" style="background:#'.$a++.$i++.'2; border:1px solid #'.$a++.$i++.'2;">'.$cnName.'</span>'; 
} 
+0

数组中项目的名称表示颜色。 –

+0

我想分配一种颜色。对每一个重复的价值。 –

+0

为什么低估这个问题?如果你不明白,那么问我,我会尽我所能解释。 –

回答

2

你可能想使用关联数组关联数组。像这样:

$names = array('zaid' => 'eee', 'khan' => 'ccc'); 
foreach($names as $key => $item){ 
    echo "<span class='element-name--$key'>$key</span>"; 
} 

现在我猜你有一个生成CSS样式表另一个文件(或者,如果你愿意,你可以做到这一点的内嵌样式在同一页)。在这里你可以这样做:

foreach($names as $key => $item){ 
    echo ".element-name--$key {background-color: #$item}"; 
} 
0

你通过你的阵列需要循环,对于每个元素,决定采取哪种颜色的使用方法:

<?php 

$items = array('zaid','zaid','ali','khan','khan','zaid','jhone','jhone'); 

foreach ($items as $item) { 
    if ($item == 'zaid') { 
     $colour = '#ddd'; 
    } 
    else if ($item == 'ali') { 
     $colour = '#E55'; 
    } 
    else if ($item == 'khan') { 
     $colour = '#099'; 
    } 
    else if ($item == 'jhone') { 
     $colour = '#055'; 
    } 
    echo `<span style="background-color:$colour">$item</span>`; 
} 

?> 

echo内使用的PHP变量允许您设置不同输出同时停留在循环内。

请注意,以上是有点草率(因为它可以使用switch语句),但将完成工作。

希望这会有所帮助! :)

+0

这不是一个动态解决方案。如果数组值将被改变怎么办? –

+0

您需要某种方法将值与所需的颜色相关联。没有这样的定义,检查每个元素是唯一的选择。 –

+0

然后帮我解决这个问题。 –

0
<?php 
$array1 = Array('zaid','zaid','ali','khan','khan','zaid','jhone','jhone'); 
foreach($array1 as $array) 
{ 
    echo "<span class='$array'>$array</span>"; 
} 
?> 

CSS

<style> 
.zaid 
{ 
    background-color:#ddd; 
} 
.ali 
{ 
    background-color:#E55; 
} 
.khan 
{ 
background-color:#099; 
} 
.jhone 
{ 
background-color:#055; 
} 


</style> 
+0

你有错误...我想你的意思'<?PHP $阵列1 =阵列( '扎伊德', '扎伊德', '阿里', '汗', '汗', '扎伊德', 'jhone', 'jhone'); foreach($ array1 as $ array) { echo“ $ array”; } ?> ' –

+0

我想我也应该在循环中传递样式。 –

+0

我的代码更新了,你可以试试这个 – Arun

1

让像下面

$arr=array("zaid"=>"#ddd","ali"=>"#E55","jhone"=>"#055","khan"=>"#bb099b"); 
//loop your repeated array 
$input=['zaid','zaid','ali','khan','khan','zaid','jhone','jhone']; 
foreach($input as $val){ 
    $colour=$arr[$val]; 
    echo "<span style='background-color:".$colour."'>".$val."</span>"; 

} 
+0

谢谢,所以我应该先为每个索引分配一个颜色。 –

+0

是的,最好制作单独的数组而不是分配重复值 – sumit

+0

我更新我的问题,你可以请现在看看它吗? –