如何将变量与双精度数组中的值匹配


How to match a variable with value in double array

我有一个类似以下示例代码的问题:

$code='100'; //$maybe $code='0' or $code='1' ... i just set a number as an sample
$xx=array(
'0'=>array(a,b,c),
'1'=>array(d,e,f), 
........
'100'=>array(aa,bb,cc)
);

我想在数组中找到$code:

if($code==$xx['$code']){
echo $xx['code'][0];  //if i want get the value 'aa'
}

但似乎$xx['$code']不起作用。有谁知道解决它的正确方法?

首先,您需要使用array_key_exists来进入if条件,然后您可以简单地使用它,例如

if(array_key_exists($code,$xx)){
    echo $xx[$code][0];  
}

或者可以简单地使用 isset 代替,例如

if(isset($xx[$code])){
    echo $xx[$code][0];  
}

你不应该在这里使用单引号,填充显示变量时,请使用不带引号或将其放在双"之间,请尝试$xx[$code]$xx["$code"]

使用 isset OR !empty 来检查数组中是否存在键。它还将检查键是否具有有效值。

  if(isset($xx[$code])){
      echo $xx[$code][0];  
  }

  if(!empty($xx[$code])){
      echo $xx[$code][0];  
  }
if($code==$xx['$code']){
  echo $xx[$code][0];  //if i want get the value 'aa'
}

如果您使用 '$code'则不会检查$code的内容,因为''将所有内容解释为字符串,并且不会在其中查找变量。

您也不能'code',因为code只是您使用的变量的名称。