Php 在多维数组中搜索元素并在其位置返回值
我通过PHP创建了这个多维数组:Php 在多维数组中搜索元素并在其位置返回值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我通过PHP创建了这个多维数组: $values = array ( array("Tom", "apple"), array("Mike", "banana"), array("Sam", "coconut") ); $search = "Tom"; 如何在数组中搜索特定值并在同一位置中找到下一项 假设搜索值是“Tom”,返回的值应该是“apple”,或者“Mike”应该返回“banana” 我猜像这样的$values[0][1]可以从数组中返回“apple”,但
$values = array
(
array("Tom", "apple"),
array("Mike", "banana"),
array("Sam", "coconut")
);
$search = "Tom";
如何在数组中搜索特定值并在同一位置中找到下一项
假设搜索值是“Tom”,返回的值应该是“apple”,或者“Mike”应该返回“banana”
我猜像这样的$values[0][1]
可以从数组中返回“apple”,但我不知道如何搜索特定的值(通过变量设置),而不必手动执行
总体:
- 有一个多维数组
- 有一个变量包含一个值(在其自身位置中始终为项[0])
- 应返回搜索内容旁边的值(其位置中的项目[1])
$values = [
"Tom" => "apple",
"Mike" => "banana"
]
甚至
$values = [
"Tom" => [
"fruit" => "apple",
"car" => "Audi"
],
"Mike" => [
"fruit" => "banana",
"car" => "VW"
]
]
搜索
function getUserKeyValue($username, $key){
return isset($values[$username][$key] ? $values[$username][$key] : null;
}
比如说
getUserKeyValue('Tom', 'fruit') or getUserKeyValue('Mike', 'car')
要搜索的名称必须为$values[0][i] 其中,i从0迭代到c-1//c是列的编号。 找到名称后,我们返回$values[1][i]
作为它旁边的项目,您应该能够这样做:
$find = $values[array_search($search, array_column($values, 0))][1];
array\u column
()提取第一个“列”(将多维数组视为一个表,每个较小的数组视为一行)。结果是:
array(
"Tom",
"Mike",
"Sam"
)
array\u search
()然后在该数组中搜索您的$search
值的第一个匹配项。对于Tom
,这将产生0
使用该索引,可以从数组中获取值 如果不确定数组中是否存在该值,请首先检查:
$index = array_search($search, array_column($values, 0));
$find = $index !== false ? $values[$index][1] : false;
A?B:C
结构是。它是if A then B else C
的缩写形式。你看过foreach()上的文档了吗?