【问题标题】:PHP check if array key equals to specific string valuePHP检查数组键是否等于特定的字符串值
【发布时间】:2021-12-11 00:40:40
【问题描述】:

我有一个数组,我想检查键是否等于特定字符串,因此我可以使用该信息并根据给定的键为另一个变量 $x 赋予新值。

到目前为止,我尝试了if (array_key_exists('slot1', $logoImages2)) {}(例如),但这似乎不起作用。

所以数组看起来像这样:

'images2' => [
    'slot1' => 'images/Beutel.svg',
    'slot2' => 'images/Bund.svg',
    'images/Container.svg',
    'slot7' => 'images/DIY.svg',
    'images/Flasche.svg',
    'images/Sack.svg',
    'slot4' => 'images/Eimer.svg',
],

如您所见,一些数组项有一个键,而一些没有键。现在我想检查,当给定一个键时,该键是否等于给定值,例如“slot7”。 所以理论上我想实现这样的目标(这只是为了解释我的最终目标):

foreach ($logoImages2 as $slot => $logo) {
    if (isset($slot)) {
        if (/* $slot is equal to 'slot7' */) {
           $x = $x2
        } elseif (/* $slot is equal to 'slot9' */) {
            $x = $x4
        }
    }
}

【问题讨论】:

  • 所以数组看起来像这样不!请准确地向我们展示该阵列的外观。试试print_r($logoImages2);
  • 如你所见,有些数组项有键,有些没有键 嗯NO!! 有些有关联键,例如 'slot1',而另一些则有 数字键 没有键就不可能有数组项 :)
  • 密钥为slot1, slot2, 0, slot7, 1, 2, slot4
  • 如果这行得通foreach ($logoImages2 as $slot => $logo) { 那么你的数组看起来不像你说的

标签: php arrays array-key


【解决方案1】:

您可以 foreach 数组并将键与值进行比较:

foreach ($logoImages2 as $slot => $logo) {
    if ($slot === "slot7") {
        $x = $x2
    } elseif ($slot === "slot9") {
        $x = $x4
    }
}

【讨论】:

  • 非常感谢!我尝试使用它,但只使用了一个等号(=)所以它不起作用,但它现在可以与三等号一起使用! :)
  • 不客气 :)
  • 不客气 :)
【解决方案2】:

您可以 foreach 数组并比较键:

foreach ($logoImages2 as $slot => $logo) {
    if ($slot == "key_which_I_want") {
        $logoImages2[$slot] = $x2;
   }
   elseif (another condition) {
       $logoImages2[$slot] = $anotherVariable;
   }
}

【讨论】:

  • 非常感谢!我试过这个并且只使用了单等号,但没有奏效。但它适用于双等号或三等号:)
猜你喜欢
  • 2019-05-13
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 2018-02-03
  • 1970-01-01
相关资源
最近更新 更多