在绞尽脑汁数小时后,尝试多个解决方案,并检查基于PHP的解决方案的堆栈溢出--我正在寻求帮助。
我想要完成的事情(通过PHP):
我的问题:
示例设置:
amenitiesArray = 'amenityX',‘吸烟’,‘宠物’,'amenityY','amenityZ',‘闭经A’,‘亚麻布’,'amenityB','wifi‘
如果amenitiesArray包含吸烟,请显示绿色支票。
如果amenitiesArray不含吸烟,则显示红色X。
执行上述两个步骤,检查多个其他values...like.
如果amenitiesArray包含宠物,请显示绿色支票。
如果amenitiesArray不包含宠物,则显示红色X。
所有我正在寻找的价值:亚麻布,无线上网,宠物和吸烟。
有用说明:每个产品/租赁属性的amenitiesArray值是不同的。amenitiesArray可能包含我正在检查的值,也可能不包含。
最后,对于每个出租的属性,我尝试显示一个如下所示的表:http://i.imgur.com/jEnXUb6.png
用PHP实现这一目标的最佳方法是什么?
发布于 2017-05-23 04:40:54
只要使用in_array(),我总是检查相同的4个值(吸烟,亚麻布,wifi,亚麻布)。对于这4个值中的每一个,我需要在数组中显示绿色检查,如果不存在,则显示红色X。
根据注释,您需要使用in_array做什么
`$amenitiesArray = ['amenityX', 'smoking', 'pets', 'amenityY', 'amenityZ', 'amenityA', 'linens', 'amenityB', 'wifi'] //from api`
$your_data = ['smoking','pets','linens','wifi'];
echo "<table boder='1px'>";
echo "<thead>";
echo "<tr><th>column1</th><th>colum2</th></tr>";
echo "</thead>";
echo "<tbody>";
foreach($your_data as $row)
{
echo "<tr><td>".$row."</td>";
if(in_array($row,$amenitiesArray))
{
echo "<td>green icon html</td>";
}
else
{
echo "<td>red icon html</td>";
}
echo "</tr>";
}
echo "</tbody>";
echo "</table>";发布于 2017-05-23 04:37:16
假设$values包含要在$array中检查的所有值:
$intersect = array_intersect($values, $array);...$intersect包含两个数组中都存在的值,您可以在其上循环并用绿色复选标记回显它们。
$diff = array_diff($values, $array);...$diff包含存在于第一个数组中的值,但不包含第二个数组中的值,您可以在其上循环并用十字标记回显它们。
发布于 2017-05-23 04:39:44
我使用array_diff(),它将从数组1生成一个值数组,这些值不在数组2中。
数组1将是要检查的值的列表。数组2将是要测试的数组。
计算数组中的任何值,即array_diff()的返回值,都将是红色X。数组2中的任何值都将是绿色检查。
示例:
// This should be an array of all values you need to test for.
$all_amenities = [ 'smoking', 'pets', 'xyz' ];
$available_amenities = [ 'pets' ];
$not_available = array_diff( $all_amenities, $available_amenities );
// loop through $available_amenities and output your green checks
// loop through $not_available and output red X但是,如果您需要将这些项目按当前顺序保存,则可以使用in_array()。
示例:
foreach ( $all_amenities as $amenity ) {
if ( in_array( $amenity, $available_amenities ) ) {
echo 'green check markup';
} else {
echo 'red X markup';
}
}https://stackoverflow.com/questions/44125810
复制相似问题