我在PHP中有一个哈希数组,需要迭代它并提取细节,但也要针对特定的键并以不同的方式使用该信息。
我要做的是在浏览器中显示每个用户的信息,但我希望IconColour不显示在屏幕上,而是构建一个图标,颜色取决于该值。
我正在构建数组:
$results_array [] = array("Name"=>$fullname, "telephone"=>$telephone, "updated"=>$lastupdated, "LRNumber"=>$tacticalcallsign, "IconColour"=>$iconcolour);
要将此信息提取出来并显示在我正在使用的浏览器中:
foreach($results_array as $row => $value){
echo "\t<div class=\"responder-info-parent\">\n";
foreach($value as $row2 => $value2) {
echo "\t\t<div class=\"responder-info\">" . $value2 . "</div>\n";
}
echo "\t</div>\n";
}
给了我:
<div class="responder-info-parent">
<div class="responder-info">Firstname Lastname</div>
<div class="responder-info">01234567896</div>
<div class="responder-info">1 hours ago</div>
<div class="responder-info">LR066</div>
<div class="responder-info">amber</div>
</div><!-- close parent-->
我希望显示一个琥珀色图标而不是琥珀色。
例如:
<div class="responder-info-parent">
<div class="responder-info">First Name</div>
<div class="responder-info">123456789</div>
<div class="responder-info">1 hours ago</div>
<div class="responder-info">LR066</div>
<div class="responder-info"><img src="/images/amber-icon.png"></div>
</div><!-- close parent-->
因此。我的理解是我需要测试一个特定的键(IconColour),如果匹配,那么从其他键输出不同的html。
这就是我陷入困境的地方。我知道我需要做什么并且已经搜索了针对哈希数组中的特定键,但我还没有找到解决方案。虽然我知道,只要我发布这个(并投票通过),我会立即得到答案; - )
完整性。这是我的$ results_array
的var_dump感谢您的帮助。
array(7) {
[0]=>
array(5) {
["Name"]=>
string(15) "First Name"
["telephone"]=>
string(11) "123456789"
["updated"]=>
string(11) "1 hours ago"
["LRNumber"]=>
string(5) "LR066"
["IconColour"]=>
string(5) "amber"
}
[1]=>
array(5) {
["Name"]=>
string(12) "First Name"
["telephone"]=>
string(11) "01234568796"
["updated"]=>
string(11) "4 hours ago"
["LRNumber"]=>
string(5) "LR011"
["IconColour"]=>
string(5) "amber"
}
[2]=>
array(5) {
["Name"]=>
string(19) "First Name"
["telephone"]=>
string(11) "01234568796"
["updated"]=>
string(10) "1 days ago"
["LRNumber"]=>
string(5) "LR005"
["IconColour"]=>
string(4) "grey"
}
[3]=>
array(5) {
["Name"]=>
string(8) "First Name"
["telephone"]=>
string(5) "LR076"
["updated"]=>
string(11) "80 days ago"
["LRNumber"]=>
string(11) "01234568796"
["IconColour"]=>
string(4) "grey"
}
[4]=>
array(5) {
["Name"]=>
string(14) "First Name"
["telephone"]=>
string(11) "01234568796"
["updated"]=>
string(11) "1 hours ago"
["LRNumber"]=>
string(5) "LR036"
["IconColour"]=>
string(5) "amber"
}
[5]=>
array(5) {
["Name"]=>
string(11) "First Name"
["telephone"]=>
string(11) "01234568796"
["updated"]=>
string(13) "0 minutes ago"
["LRNumber"]=>
string(5) "LR002"
["IconColour"]=>
string(5) "green"
}
[6]=>
array(5) {
["Name"]=>
string(13) "First Name"
["telephone"]=>
string(11) "01234568796"
["updated"]=>
string(11) "7 hours ago"
["LRNumber"]=>
string(5) "LR003"
["IconColour"]=>
string(5) "amber"
}
}
答案 0 :(得分:1)
if ($row2 == 'IconColour') {
echo "\t\t<div class=\"responder-info\"><img src=\"/images/" . $value2 . "-icon.png\"></div>\n";
} else {
// whatever you have now
}
答案 1 :(得分:1)
在foreach loop中,您有一个键和一个值。您可以检查当前键==“IconColour”并显示图像而不是仅回显该值。如果您拥有名为“color”-icon.png的所有图标,则可以回显颜色(值)和硬编码图像名称的其他部分。例如:
$results_array [] = array("Name"=>'First Name', "telephone"=>'123456789', "updated"=>'1 hours ago', "LRNumber"=>'LR066', "IconColour"=>'amber');
foreach($results_array as $key => $value){
echo "\t<div class=\"responder-info-parent\">\n";
foreach($value as $key2 => $value2) {
if ($key2 == "IconColour") {
echo "\t\t<div class=\"responder-info\"><img src=\"/images/" . $value2 . "-icon.png\"</div>\n";
} else {
echo "\t\t<div class=\"responder-info\">" . $value2 . "</div>\n";
}
}
echo "\t</div>\n";
}