php - 在“if”语句中使用增量
问题描述
我今天遇到了一个问题,增量器需要像这样编码(在if
语句内部,我必须使用&&
运算符来获得正确的结果。我无法使用for
或foreach
获得正确的结果。有没有更好的方法来写这个?
if ($array[0]['key'] !== $var && $array[1]['key'] !== $var && $array[2]['key'] !== $var): ?>
//echo something here
endif;
解决方案
如果您不关心最大值出现的顶级索引(在本例中为0
、1
或),并且您想搜索整个数组,则可以使用和的以下组合:2
array_search
array_column
$array = [
['key' => 'foo'],
['key' => 'bar'],
['key' => 'baz'],
];
$var = 'hello world';
if (array_search($var, array_column($array, 'key')) === false) {
echo 'var does not exist';
}
此方法在此处的 PHP 文档中进行了描述。请注意,正如我上面所说,如果您关心它,这不会可靠地为您提供索引。如果您想知道匹配是否存在,我只会使用它。
如果您想要索引,或者您特别不想在索引 2(或任何其他任意索引)之外搜索,您可以创建如下函数:
$array = [
['key' => 'foo'],
['key' => 'bar'],
['key' => 'baz'],
];
$var = 'hello world';
function keyValueExists($array, $key, $value, $maxIndex = null) {
foreach ($array as $index => $item) {
if (isset($item[$key]) && $item[$key] === $value) {
return true;
}
if ($maxIndex !== null && $index == $maxIndex) {
break;
}
}
return false;
}
if (keyValueExists($array, 'key', $var, 2) === false) {
echo 'var does not exist';
}
推荐阅读
- c# - Lsing API 以不同的方法列出结果
- python - Python - 使用 RegEx 仅提取模式之间的字符串
- swift - 使用 SPM 在 XCode11 中添加本地依赖项
- python - 我将如何找到数字 Python 的不同数字
- angular - 如何让我的前端和后端在 Angular 中相互通信?
- wordpress - 带有木材的 ACF 未显示在首页上
- ruby - 有人能帮我理解 Ruby 手册中 str.counts 的例子吗?
- reactjs - 组件重构为自己的文件时路由不呈现视图
- c# - Net Core:使用命令行更改“包管理器控制台”Nuget 中的“默认项目”
- python - 如何使用按钮销毁程序中当前打开的每个屏幕