PHP array_search 多维数组并返回键

2023-11-29

我试图在多维数组中搜索一个值(下面只是大数组的一部分)并获取该值的密钥,但我无法自己管理它。这是我尝试过的:

Array
(
    [0] => Array
        (
            [0] => SMEG - 30
            [1] => ALES
            [2] => -
            [3] => -
            [4] => -
            [5] => ALES
            [6] => 44-
            [7] => -
            [8] => FR*S30*E36*1*1
            [9] => FR*S30*E36*1*1
            [10] => US*S30
            [11] => Oui
            [12] => 3376
            [13] => Normale
            [14] => -
        )

    [1] => Array  // <-- wanted key
        (
            [0] => SMEG - 30
            [1] => ALES
            [2] => -
            [3] => Chemin Des Sports
            [4] => -
            [5] => ALES
            [6] => -
            [7] => -
            [8] => FR*S30*E37*2*1  // <-- wanted value
            [9] => FR*S30*E37*2*1
            [10] => FR*S30
            [11] => Oui
            [12] => 33762
            [13] => Normale
            [14] => -
        )

    [2] => Array
        (
            [0] => SMEG - 30
            [1] => ALES
            [2] => 0
            [3] => Ecole Des Mines
            [4] => -
            [5] => ALES
            [6] => 4-
            [7] => -
            [8] => FR*S30*E38*2*1
            [9] => FR*S30*E38*2*1
            [10] => FR*S30
            [11] => Oui
            [12] => 3376
            [13] => Normale
            [14] => -
        )
)

$key = array_search("FR*S30*E37*2*1", array_column($data, '8'));
var_dump($data[$key]);

使用此代码我无法获得所需数组的密钥。我究竟做错了什么 ?


如果你不需要密钥,你可以使用array_filter

$result = array_filter($data, function($item) use ($search) {
    return $item[8] == $search;
})[0];

如果您需要密钥,可以这样修改

$key = false;
$result = array_filter($data, function($item, $k) use ($search, &$key) {
    if ($item[8] == $search) {
        $key = $k;
        return true;
    }
    return false;
}, ARRAY_FILTER_USE_BOTH)[0];

要处理未找到结果的情况,您必须跳过[0]聚会并测试是否count($result) != 0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP array_search 多维数组并返回键 的相关文章

  • whereHas 之后的 where 查询在 Laravel 5.4 中无法正常工作

    就我而言 我有channels与多对多关系的表类别 table 我想获取他们的频道类别包含像doing这样的动态值LIKE查询每个类别的标题 但我需要检查 a 的另一列channel通过 where 子句 这是一个channel结构 id
  • 我可以为我的记录器使用静态类吗?

    最近我被告知静态类 方法是邪恶的 以我的 Logger 类为例 class Logger private static logs array public static function add msg self logs msg publ
  • 如何动态地从对象中提取所有元素

    如何从对象中提取特定列 我有一个列数组 我希望从对象中提取这些字段 该对象将由作为项目的映射循环函数构造 现在在这里 如何动态检查我的字段 我不想要这样的 item col 0 请告诉我一个捷径 const person firstName
  • 如何循环并访问多维且关联的数组中的各个元素? PHP,JSON 或 XML

    我正在通过 API zotero org 检索书目数据 它与底部的示例类似 只是更复杂 示例是键入的 我想检索一条或多条记录并在页面上显示某些值 例如 我想循环遍历每个顶级记录并以格式良好的引文打印数据 暂时忽略正确的围兜样式 假设我只想为
  • 使用 JavaScript 查找数组中最接近的日期

    我有一个包含天数的数组 每一天都是一个对象 例如 day year 2012 day month 08 day number 03 day name mon 我还通过使用以下方法向每个日期对象添加了时间戳属性 function conver
  • PHP:还记得我和安全吗?

    在我学习 PHP 如何支持 Unicode 的间隙 我一直在研究如何让我的 记住我 cookie 更加安全 然而 有一些事情我不明白 还有一些我自己的思考 我希望得到一些建议和意见 1 有没有什么方法可以采用不涉及cookie的 记住我 功
  • 如何正确使用 Bearer 代币?

    我正在制作一个授权系统PHP 我遇到了传递 JWT 令牌的承载方案 我阅读了 RFC 6750 1 我有以下疑问 这如何提高安全性 成功授权和登录后 服务器在其主体中使用 JWT 令牌响应客户端 现在当客户端发出另一个请求时 我不清楚如何实
  • 按周将对象数组拆分为组

    我有一个包含这样的数据的对象数组 date 01 01 2017 00 00 00 dataField1 dataField2 date 01 02 2017 00 00 00 dataField1 dataField2 date 01 1
  • 更新 Composer 依赖项时 Artisan 命令出错

    我正在为 Laravel 开发一个库 其中包含一个服务提供者 我已将此库添加到另一个项目的composer json file The composer json 主项目 的文件包含以下脚本 scripts post root packag
  • 将 WooCommerce 属性标签替换为每个的自定义图像

    我正在做一个项目 我需要一些团体的帮助 我正在使用 woocommerce 产品系统 在商店存档页面产品上我显示属性标签 属性值 就像文本一样 属性标签 属性值 例如传输 手动 有没有办法将属性标签显示为图像 我无法添加 html 代码 i
  • PHP 数组比较

    如何比较两个数组 例如我有array a b c and array a c b 当它们进行比较时 它会返回 true 但如果其中一个字母没有在其中之一中找到 它将返回 false 顺序并不重要 在比较之前 您需要将两个数组的内容调整为相同
  • 尝试加载 php_oci8.dll 时 PHP 启动时出现警告

    我正在使用 XAMPP 并尝试为 sql 配置 Oracle 连接 我取消了该行的注释extension php oci8 dll一开始出现错误 缺少oci dll 但后来我从Oracle网页下载了instantclient 我尝试过版本
  • PHP 会话混乱

    好吧 我已经很困惑了 我有一个存储在会话中的对象 我可以向该对象添加项目 到目前为止非常简单 我像这样初始化对象 template new Template mysqli SESSION template serialize templat
  • 如何在 Laravel 8 中实现记住我?

    我有一个登录表单和一个记住我复选框 我希望如果用户在上次登录时选中 记住我 复选框 则自动填写用户名和密码 但目前不起作用 我正在使用 Laravel 中构建的 LoginController 登录控制器
  • UNION SELECT - 循环?还是单个查询?

    如果我使用 UNION 从数据库中进行多个 SELECT 是否被视为一个查询 或多个查询 SELECT column name s FROM table1 UNION SELECT column name s FROM table2 这是否
  • 如何获得DiVs等级?

    html div class div class p strong span style color FF0000 Content1 span strong p p style text align center Content2 img
  • 重定向至 2 页

    我有一个 PHP 页面 我想先将其重定向到一个页面 例如 google com 然后再重定向到另一个页面 例如 bing com 为此 我使用以下方法 header Location http google com header Locat
  • PHP 中的金字塔星号

    请看我的代码 for row var row gt 1 row for j 0 j lt row j echo echo echo nbsp Output 但我需要输出如下 您可能想查看一些字符串函数
  • ImagickException 并显示消息 Postscript delegate 在 MAMP 3.0.5 上失败

    我正在尝试使用 MAMP 3 0 5 将 PDF 转换为 png 文件 我知道我的 PHP 代码可以在我们的 Linux 服务器上正常运行 我在 Mac OSX 10 8 5 上安装了 MAMP 3 0 5 当我运行脚本将 PDF 转换为
  • 当我在对象上调用函数时,为什么会在非对象上出现此函数调用错误? [复制]

    这个问题在这里已经有答案了 Error 致命错误 调用成员函数 中的非对象上的bind param var www web55 web pdftest events php 76号线 Code public function countDa

随机推荐

  • try... except... except... :如何避免重复代码

    我想避免写作errorCount 1在不止一处 我正在寻找比更好的方法 success False try else success True finally if success storage store commit else sto
  • MATLAB 中神经网络分类的 10 倍交叉验证示例

    我正在寻找在神经网络中应用 10 倍交叉验证的示例 我需要这个问题的链接答案 MATLAB 中 10 重 SVM 分类的示例 我想对所有 3 个类别进行分类 而在示例中只考虑了两个类别 编辑 这是我为 iris 示例编写的代码 load f
  • 将结果集中的值写入文本文件(.txt 文件)

    请帮助我处理下面的代码 因为我想将结果集中的值写入 txt 文件 Code while rs next FileWriter fstream new FileWriter file BufferedWriter out new Buffer
  • 删除列标题中“.”之后的字符

    我有一个与这里提出的问题类似的问题 r 删除列名中某些字符之后的部分不过我有一点皱纹 我的列标题的格式如 ENSG00000124564 16 和 ENSG00000257509 1 但是我想删除后面的所有字符 我不能只删除最后 x 个字符
  • ie9 不尊重 img 元素比例中的 SVG

    CSS img max height 30px HTML img src foo svg 我正在寻找这个 svg 图像按比例缩放到最大高度 30 像素高 svg 的自然尺寸为 200 像素 x 200 像素 在 FF 和 Chrome 30
  • 如何获取.NET 3.5中CSIDL_COMMON_DOCUMENTS的路径?

    我正在为安装程序执行自定义操作 它必须读取存储在的文件CSIDL COMMON DOCUMENTS以确定安装目录 我希望在自定义操作中更改安装目录不会成为问题 但这是另一个问题 我看到 NET 4 添加了CommonDocuments to
  • 如何更改ggplot中图例“键”的方向?

    如何更改下面标题的键 使其处于水平位置而不更改图形的垂直线 set seed 000 m lt matrix rnorm 100 0 1 100 1 dt lt data frame m names dt lt c X library gg
  • 根据两个变量匹配数据帧行(索引)

    我本质上是试图将杂乱的数据转换成长形式以进行线性建模 我有 2 个 data frames rec 和 book book 中的每一行都需要根据行中匹配的两个变量 MRN 和 COURSE 粘贴到 rec 的几行的末尾 我已尝试以下方法及其
  • 在 Python 中从 json 数组中选取数据对象

    我有这个数据对象 我想知道如何选择名为的子对象commits or projects 我试过all commits all data commits 但 python 强迫我给它一个整数而不是字符串 想法 commits project i
  • cudaatomicAdd 示例无法产生正确的输出

    编写以下代码的目的是将 100 个元素的浮点数数组增加 1 十倍 在输出中 我期望每个元素都有 10 0f 值的 100 个元素数组 相反 我得到随机值 您能在这里指出我的错误吗 global void testAdd float a fl
  • AutoCompleteTextView 搜索部分单词而不是整个单词

    我有一个AutoCompleteTextView 并且它工作得很好 直到我在输入中添加一个空格 比如说 如果我有许多历史事件的清单 不列颠之战 1940 突出部之战 1944 插入大量战斗 拿破仑的致命进军 1812 插入许多其他历史事件
  • 数据库中电子邮件地址的最佳长度是多少?

    这是我的查询的摘录部分 反映了EMAIL ADDRESS列数据类型和属性 EMAIL ADDRESS CHARACTER VARYING 20 NOT NULL 然而 约翰 桑德斯 uses VARYING 256 这表明我不一定正确理解
  • Java:加载依赖于其他库的库

    我想在我的 java 应用程序中加载我自己的本机库 这些本机库依赖于第三方库 当我的应用程序安装在客户端计算机上时 第三方库可能存在 也可能不存在 在我的 java 应用程序中 我要求用户指定依赖库的位置 获得此信息后 我将使用它通过 JN
  • 在我网站的图像上添加 Instagram 滤镜

    我在用CSSGram在我的网站上使图像具有类似 Instagram 的滤镜 下面是向图像添加滤镜的方法
  • android中声音转换为频率[重复]

    这个问题在这里已经有答案了 可能的重复 实时音高检测 确定通过麦克风接收到的声音的音频频率 我正在开发自己的 Android 吉他调音器 在这里我将不得不使用吉他音符频率 因此 我想知道如何在android中将通过麦克风端口传来的声音转换为
  • 在静态类中使用依赖注入

    我需要在静态类中使用依赖注入 静态类中的方法需要注入依赖项的值 以下代码示例演示了我的问题 public static class XHelper public static TResponse Execute string metodo
  • 缓冲区为空后关闭“worker”go 例程

    我想要我的 goroutine 工作人员 ProcessToDo 在下面的代码中 等待所有 排队 工作处理完毕后再关闭 工作例程有一个 待办事项 通道 缓冲 通过该通道将工作发送给它 它有一个 完成 通道来告诉它开始关闭 文档称 如果满足多
  • 如何在JAVA中将纪元转换为mySQL时间戳

    如何获取mySQL时间戳格式mySQLtimestamp long epochNow System currentTimeMillis 1000 long epochWeek 604800 long date7daysAgo epochNo
  • 对 mongoose 3.x 填充文档进行排序的正确语法

    我有两个 MongoDB 集合Customer and User in 1 1关系 我正在尝试使用查询两个文档猫鼬种群并对它们进行排序User name 下面没有任何工作 我的猫鼬是 3 8 19 Customer find populat
  • PHP array_search 多维数组并返回键

    我试图在多维数组中搜索一个值 下面只是大数组的一部分 并获取该值的密钥 但我无法自己管理它 这是我尝试过的 Array 0 gt Array 0 gt SMEG 30 1 gt ALES 2 gt 3 gt 4 gt 5 gt ALES 6