我只想在此循环中获得数组的确切结果:

   <?php

        $color_groups = [
            "green" => array('lightgreen', 'green', 'olive', 'malachite'),
            "blue" => array('blue', 'skyblue', 'cyan', 'iris', 'navyblue', 'zaffre')
        ];

        $selected_color_str = 'cyan';

        foreach ($color_groups as $key => $value) {
            foreach ($value as $color) {
                if (preg_match('/' . $color . '/i', $selected_color_str)) {
                    echo $key;
                } else {
                    echo " not_found ";
                }
            }
        }

        ?>

Result:
未找到blue未找到未找到

  • 但我只想显示blue,如果该数组中存在,如果不是ECHO NOT_FOUND的话

推荐答案

在每次判断时,您都会输出一条NOT_FOUND消息,只有在选中了所有选项后才需要这样做.

您还可以在每个组中使用in_array()来判断,而不是查看每个元素.

所以...

// Store for the group key that matches
$matched_group = '';

foreach ($color_groups as $group => $colour_options) {
    if (in_array($selected_color_str, $colour_options)) {
        $matched_group = $group;
        // You can stop looking once found
        break;
    }
}

if ($matched_group) {
    echo 'Found ' . $matched_group;
} else {
    echo 'Not found';
}

Php相关问答推荐

WooCommerce中仅在单一产品和产品档案页面中将小数设置为大写

WordPress:将自定义单选输入字段添加到用户配置文件

使用MySQLi使用连接字符串设置字符集

如何从WooCommerce checkout 帐单邮箱字段中删除星号?

PHP:为什么递归需要这么长时间

使用HPOS过滤WooCommerce中的订单列表

Rappasoft Datatables V2(我想在另一个表具有相同值列时显示数据)

如何使用PHP从TXM(XML)标记中读取特定属性

Symfony框架锁定和.env设置

Mac 上安装 php 时出现 Homebrew 错误

用自定义代码替换 WooCommerce 单一产品简短描述

Google Drive API:为什么使用服务帐户在下载文件时会将我带到 Google Drive 登录窗口?

当我激活插件时出现错误注意:未定义的偏移量:1

使用 PHP 的 OAuth 2.0 MAC

批量作业(job)提交错误无法处理所有文档,uris 似乎正确?

同一页面上多个组件的 Livewire 分页问题

php preg_match 验证 Tiktok 用户名

如果有很多重定向,PHP curl 的行为不像命令行 curl

将 HTML 表单链接到 SQLite 数据库

来自命令行的 PHP 没有给出正确的结果