11, "name" => "First"); $arr[] = array("id" => 52, "name" => "Se-6ren">
gpt4 book ai didi

php - 按一列值搜索二维数组并从符合条件的行返回另一个值

转载 作者:可可西里 更新时间:2023-10-31 23:09:31 24 4
gpt4 key购买 nike

假设我有一个数组,例如:

$arr[] = array("id" => 11, "name" => "First");
$arr[] = array("id" => 52, "name" => "Second");
$arr[] = array("id" => 6, "name" => "Third");
$arr[] = array("id" => 43, "name" => "Fourth");

我想获取某个ID对应的名字,这样我就可以做:

$name = findNameFromID(43);

并得到,例如,“第四”。

我想过使用 array_filter 但我对如何正确传递变量有点困惑。我见过诸如this one之类的问题但我似乎无法将解决方案扩展到多维数组。

有什么帮助吗?

最佳答案

findNameFromID($array,$ID) {
return array_values(array_filter($array, function($arrayValue) use($ID) { return $arrayValue['id'] == $ID; } ));
}

$name = findNameFromID($arr,43);
if (count($name) > 0) {
$name = $name[0]['name'];
} else {
echo 'No match found';
}

PHP 5.3.0 及以上

编辑

或变体:

findNameFromID($array,$ID) {
$results = array_values(array_filter($array, function($arrayValue) use($ID) { return $arrayValue['id'] == $ID; } ));
if (count($results) > 0) {
return $name[0]['name'];
} else {
return FALSE;
}
}

$name = findNameFromID($arr,43);
if (!$name) {
echo 'No match found';
}

编辑 #2

从 PHP 5.5 开始,我们可以使用 array_column()

findNameFromID($array, $ID) {
$results = array_column($array, 'name', 'id');
return (isset($results[$ID])) ? $results[$ID] : FALSE;
}

关于php - 按一列值搜索二维数组并从符合条件的行返回另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9071780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com