首页 > 解决方案 > 如何在不循环的情况下在多维数组中查找值?

问题描述

我有一个存储在$accounts变量中的多维数组:

Array
(
    [0] => Array
        (
            [id] => 1
            [account] => ACR016
            [desc] => Salary
        )

    [1] => Array
        (
            [id] => 2
            [account] => ACR017
            [desc] => Bonuses
        )
)

我想通过在$accounts中使用其“帐户”来查找/获取“desc”值,

在 SQL 中,我会这样:

SELECT desc FROM table WHERE account = 'ACR016';

如何在不执行 SQL 查询(因为数组已存储在变量中)且不循环的情况下使用 PHP 做到这一点?

标签: phparrays

解决方案


为此,请使用https://www.php.net/manual/en/function.array-column.php

由于这是一个内置函数,它应该比执行自己的循环更好。

例子:

$accountDescriptions = array_column($accounts,'desc','account');

将导致:

Array
(
    [ACR016] => Salary 
    [ACR017] => Bonuses
)

或者,您可以使用:

例子:

$accountDescriptions = array_column($accounts,null,'account');

然后你会得到所有用帐户而不是数字索引键入的数据。


推荐阅读