php - 对多维数组使用 array_search

标签 php arrays multidimensional-array

在一维数组中使用 array_search 很简单

$array = array("apple", "banana", "cherry");
$searchValue = "cherry";
$key = array_search($searchValue, $array);

echo $key;

但是多维数组呢?

    #RaceRecord

    [CarID] [ColorID] [Position]
[0]    1        1         3
[1]    2        1         1
[2]    3        2         4
[3]    4        2         2
[4]    5        3         5

例如我想获取位置为 1 的汽车的索引。我该怎么做?

最佳答案

在 php 5.5.5 及更高版本中, 你可以试试这个

$array_subjected_to_search =array(
array(
        'name' => 'flash',
        'type' => 'hero'
    ),

array(
        'name' => 'zoom',
        'type' => 'villian'
    ),

array(
        'name' => 'snart',
        'type' => 'antihero'
    )
);
$key = array_search('snart', array_column($array_subjected_to_search, 'name'));
var_dump($array_subjected_to_search[$key]);

输出:

array(2) { ["name"]=> string(5) "snart" ["type"]=> string(8) "antihero" }

工作样本:http://sandbox.onlinephpfunctions.com/code/19385da11fe0614ef5f84f58b6dae80bd216fc01

有关 array_column 的文档可以找到 here

关于php - 对多维数组使用 array_search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7694843/

相关文章:

php - 如何更改 WooCommerce 产品的产品标签列表中的排序

php - 如何获取没有html标签的文本

javascript - 在 Javascript 数组中引用变量

jquery - 使用 jquery 从数组列表中添加和删除数组项

将 char 指针数组转换为小写 C

php - 如何获取未在逗号分隔字符串的第一个或最后一个索引但在 MySQL 中的字符串中间索引的值

php - PHP 中的 XML 输出 (UTF-8)

c# - 将多维数组从 C# 传递到 C++ DLL

arrays - 当与二维数组一起使用时,Realloc 在 C 中会产生未定义的行为

java - 解析嵌套数组字符串