php - 如何用 PHP 中的 isset 重写我的 in_array?
问题描述
我有这个代码:
return in_array( get_theme_mod( 'header_style' ), ['style-1','style-2','style-3','style-4', 'style-6'] );
哪个应该返回header_style
(可能是style-1, style-2, etc.
)是否准确地在该列表中。
简单来说,就是:
in_array( 'style-1', ['style-1','style-2','style-3','style-4', 'style-6'] );
我怎么能用 isset 重写这个?
解决方案
isset
检查是否设置了键的值,因此您需要重建第二个数组(仅作为示例):
// `style-` become keys
['style-1' => true, 'style-2' => true, 'style-3' => true, 'style-4' => true, 'style-6' => true];
现在,您可以使用isset
:
$allowed_styles = ['style-1' => true, 'style-2' => true, 'style-3' => true, 'style-4' => true, 'style-6' => true];
// option is:
// $allowed_styles = array_fill_keys(['style-1', 'style-2'], true);
return isset($allowed_styles[get_theme_mod( 'header_style' )]);
推荐阅读
- python - 用列表中的随机项替换 pyspark 数据框列中的某个组
- r - 如何在 estudy2 包 R 中修复“需要 TRUE/FALSE 的缺失值”
- java - 从适配器获取链接到活动,然后在外部播放器中打开链接?
- react-native - 我应该使用什么语言来为已经拥有功能齐全的 webapp 和 api 的项目构建跨平台移动应用程序?
- google-cloud-platform - 安装和使用 google cloud trace api 客户端版本 1 for python
- django - Heroku + S3 AWS + Django != 没有图像
- ios - 在 Swift 中强制自定义 AVSpeech 和 AVSpeechUtterance 中的单词发音
- google-cloud-platform - 谷歌云自然语言 API 分类明文与 Html
- javascript - 如何知道某个 JS 插件是否被加载?
- schema.org - 页面上的多个(相同类型)模式对象 - 任何方式为所有对象设置一个属性而不为每个对象重复它?