搜索二维数组时返回符合条件的行的值[重复]

问题描述 投票:0回答:2

我有一个多维国家数组,其中包含:

  • 代码 -> 国家/地区代码
  • 名称 -> 国家/地区名称
  • flag -> CSS 精灵标志类

针是countryCode,而大海捞针是$countriesArray。您将如何搜索字符串(countryCode)并返回相应的名称和标志。这个数组构造得很糟糕吗?.

数组

$CountriesArray = [
    ['code' => 'bj', 'name' => 'Benin', 'flag' => 'flag flag-bj'],                     
    ['code' => 'bw', 'name' => 'Botswana', 'flag' => 'flag flag-bw'],
    ['code' => 'cg', 'name' => 'Congo', 'flag' => 'flag flag-cg'],
    // etc.
];
php arrays multidimensional-array filter
2个回答
1
投票

同样的问题在here,基本上你只需要循环遍历所有不同的数组。 在下面的示例中,$return_val 将是国家/地区的数组。

$search_term = 'cg';
foreach($countriesArray as $c_info){
   if($c_info['code']==$search_term){
      $return_val = $c_info;
   }
}

0
投票
for($i = 0; $i <= count($countriesArray); $i++){
    if($countriesArray[$i]["code"] == "cg"){
        return $countriesArray[$i]["name"];
    }
}

这应该有效

每个版本:

foreach($countriesArray as $country){
    if($country["code"] == "cg"){
        ...
    }
}

示例功能:

function multiDimenArraySearch($n,$h){
    foreach($h as $arr){
        if($arr['code'] == $n){
            return $arr;
        }
    }
}

$search = multiDimenArraySearch("cg",$countriesArray);
$name = $search["name"];

搜索值是数组键:

foreach($h as $key => $value){
    if($key == "cg") return $value;
}
© www.soinside.com 2019 - 2024. All rights reserved.