Php 如果满足for循环中的if条件,如何获取相应的数组键值

Php 如果满足for循环中的if条件,如何获取相应的数组键值,php,arrays,Php,Arrays,我有任何带有键和值的数组,我想得到键的值,如果键等于某个字符串 当我使用这段代码时,我得到的是数组的最后一个键值。如果需要,我也可以灵活地更改阵列结构 $grouparray =[ "red" => "4" , "blue" =>"5" , "green" => "6"]; foreach($grouparray as $x=>$x_value){ if($x=blue){ $group_id=$x_value;

我有任何带有键和值的数组,我想得到键的值,如果键等于某个字符串

当我使用这段代码时,我得到的是数组的最后一个键值。如果需要,我也可以灵活地更改阵列结构

$grouparray =[ "red" => "4" , "blue" =>"5" , "green" => "6"];

foreach($grouparray   as $x=>$x_value){
          if($x=blue){
              $group_id=$x_value;

          }

      }

print_r($group_id);

我希望
$group\u id=5

您的蓝色引号缺失

$grouparray =[ "red" => "4" , "blue" =>"5" , "green" => "6"];

    foreach($grouparray as $x=>$x_value){
              if($x=="blue"){
                  $group_id=$x_value;

              }

          }

    print_r($group_id);

您的
if
语句中有两个问题:

if($x=blue){
替换为
if($x==“blue”){

  • Blue
    是一个字符串,因此您需要一些引号
  • =
    用于赋值,
    =
    ==
    用于比较
  • 但是你不应该做foreach循环来得到你的答案。如果你只是做
    $group\u id=$grouparray['blue'];
    你会得到你想要的,不知道为什么你需要一个循环