我正在使用PHP&我有一个多维数组,我需要搜索以查看“键”的值是否存在,如果它存在,则获取“字段”的值。这是我的数组:
Array
(
[0] => Array
(
[key] => 31
[field] => CONSTRUCTN
[value] => LFD_CONSTRUCTION_2
)
[1] => Array
(
[key] => 32
[field] => COOLING
value] => LFD_COOLING_1
)
)
我希望能够在数组中搜索31的“键”值。如果存在,那么我希望能够提取“CONSTRUCTN”的相应“字段”值。
我尝试过使用array_search(31,$ myArray),但它不起作用......
答案 0 :(得分:3)
array_column
和array_search
函数的单行解决方案:
$result = array_search(31, array_column($arr, 'key', 'field'));
print_r($result); // CONSTRUCTN
或使用简单的foreach
循环:
$search_key = 31;
$result = "";
foreach ($arr as $item) { // $arr is your initial array
if ($item['key'] == $search_key) {
$result = $item['field'];
break;
}
}
print_r($result); // CONSTRUCTN
答案 1 :(得分:2)
function searchMultiArray($val, $array) {
foreach ($array as $element) {
if ($element['key'] == $val) {
return $element['field'];
}
}
return null;
}
然后:
searchMultiArray(31, $myArray);
应该返回" CONSTRUCTN"。
答案 2 :(得分:0)
我没有测试过,但我认为应该这样做。
function searchByKey($value, $Array){
foreach ($Array as $innerArray) {
if ($innerArray['key'] == $value) {
return $innerArray['field'];
}
}
}
然后调用searchByKey(31, $myArray);
应该返回'CONSTRUCTN'。
希望有所帮助。
答案 3 :(得分:0)
您可以使用array_filter,类似这样的内容,
function searchMultiDimensionalArray($array, $key, $value) {
$items = array_filter($array, function($item){
return $item[$key] == $value;
});
if (count($items) > 0) {
return $items[0];
}
return NULL;
}
对任何多维数组都使用它,
$searchItem = searchMultiDimensionalArray($myArray, 'key', 31)
if ($searchItem != NULL) {
$field = $searchItem['field']
}