php -
希望一切安好。
我想显示一系列徽章,这些徽章将根据包含特定字符串的字段显示不同的图像。例如,像这样的事情(虽然我知道这可能是不正确的)
<?php if (stripos($business, "local") !== false)
echo "badge-
问题描述
希望一切安好。
我想显示一系列徽章,这些徽章将根据包含特定字符串的字段显示不同的图像。例如,像这样的事情(虽然我知道这可能是不正确的)
<?php if (stripos($business, "local") !== false)
echo "badge-icon1.png"; ?>
<?php if (stripos($business, "interstate") !== false)
echo "badge-icon2.png"; ?>
<?php if (stripos($business, "national") !== false)
echo "badge-icon3.png"; ?>
<?php if (stripos($business, "international") !== false)
echo "badge-icon4.png"; ?>
我对 stripos 函数很熟悉,尽管我不确定它是否适合基于一个字段是否包含几个字符串选项之一的一系列替代方案。
有没有更合适的替代方法?
谢谢您的帮助!
我将在此处为遇到此问题的任何人添加此内容。我有同样的问题,我得到这个重复键错误的原因是因为我的旧猫鼬模型曾经对我的一个键强制执行唯一约束,当我从我的猫鼬模型中删除这些唯一约束时,我忘记完全删除数据库中的所有现有索引。当我运行:db.mycollection.getIndexes()
时,我发现即使从每个集合中删除了所有文档,旧的唯一索引仍然在我的数据库中。
为了摆脱这些索引,我运行了:db.mycollection.dropIndexes()
在 shell 中。
我给您的另一个提示:如果您有一个清除集合并插入新数据的数据库种子脚本(例如,用于您的测试套件),我建议您在清除数据库后删除每个集合的所有索引。您可以像这样在猫鼬中删除模型的索引:myMongooseModel.collection.dropIndexes()
解决方案
stripos
在这里不太适合,因为它会national
在national
和中匹配international
。如果整个$business
字符串是单词local
等interstate
,您可能会发现一个数组更易于使用:
$badges = array('local' => 'badge-icon1.png',
'interstate' => 'badge-icon2.png',
'national' => 'badge-icon3.png',
'international' => 'badge-icon2.png'
);
echo $badges[$business] ?? '';
如果$business
其中可能包含大写字符(例如Local
),strtolower($business)
请用作数组索引:
echo $badges[strtolower($business)] ?? '';
此外,如果您想要$business
一个与 4 个名称之一不匹配的默认图像,您可以将其放在echo
:
echo $badges[$business] ?? 'badge-placeholder.png';
推荐阅读
- vba - Worksheet_Change 事件中的类型不匹配错误
- wpf - MVVM-Light and WPF User control library
- ios - 如何在目标 c 中创建字典数组
- python - opencv-python 摄像头读取错误
- python - 从 Flask 运行 python 模块时找不到现有依赖项
- java - Apache Kafka 消息广播
- interrupt - STM32F4 UART Rx 中断示例代码
- c - 这怎么可能是失忆了?瓦尔格林
- c# - .Net 4.6.2 项目中的 .Net 标准库:找不到 System.Runtime 程序集
- kubernetes - 多个 nginx 入口重写的默认路径
希望一切安好。
我想显示一系列徽章,这些徽章将根据包含特定字符串的字段显示不同的图像。例如,像这样的事情(虽然我知道这可能是不正确的)
<?php if (stripos($business, "local") !== false)
echo "badge-
问题描述
希望一切安好。
我想显示一系列徽章,这些徽章将根据包含特定字符串的字段显示不同的图像。例如,像这样的事情(虽然我知道这可能是不正确的)
<?php if (stripos($business, "local") !== false)
echo "badge-icon1.png"; ?>
<?php if (stripos($business, "interstate") !== false)
echo "badge-icon2.png"; ?>
<?php if (stripos($business, "national") !== false)
echo "badge-icon3.png"; ?>
<?php if (stripos($business, "international") !== false)
echo "badge-icon4.png"; ?>
我对 stripos 函数很熟悉,尽管我不确定它是否适合基于一个字段是否包含几个字符串选项之一的一系列替代方案。
有没有更合适的替代方法?
谢谢您的帮助!
我将在此处为遇到此问题的任何人添加此内容。我有同样的问题,我得到这个重复键错误的原因是因为我的旧猫鼬模型曾经对我的一个键强制执行唯一约束,当我从我的猫鼬模型中删除这些唯一约束时,我忘记完全删除数据库中的所有现有索引。当我运行:db.mycollection.getIndexes()
时,我发现即使从每个集合中删除了所有文档,旧的唯一索引仍然在我的数据库中。
为了摆脱这些索引,我运行了:db.mycollection.dropIndexes()
在 shell 中。
我给您的另一个提示:如果您有一个清除集合并插入新数据的数据库种子脚本(例如,用于您的测试套件),我建议您在清除数据库后删除每个集合的所有索引。您可以像这样在猫鼬中删除模型的索引:myMongooseModel.collection.dropIndexes()
stripos
在这里不太适合,因为它会national
在national
和中匹配international
。如果整个$business
字符串是单词local
等interstate
,您可能会发现一个数组更易于使用:
$badges = array('local' => 'badge-icon1.png',
'interstate' => 'badge-icon2.png',
'national' => 'badge-icon3.png',
'international' => 'badge-icon2.png'
);
echo $badges[$business] ?? '';
如果$business
其中可能包含大写字符(例如Local
),strtolower($business)
请用作数组索引:
echo $badges[strtolower($business)] ?? '';
此外,如果您想要$business
一个与 4 个名称之一不匹配的默认图像,您可以将其放在echo
:
echo $badges[$business] ?? 'badge-placeholder.png';