PHP 如果array_key_exists,变量等于数组值:如何?

Posted

技术标签:

【中文标题】PHP 如果array_key_exists,变量等于数组值:如何?【英文标题】:PHP If array_key_exists, variable equals array value: How? 【发布时间】:2011-12-06 12:13:08 【问题描述】:

我将两个数组组合起来创建了以下数组,命名为 $group_wages_array

Array ( [1] => 500 [4] => 44 [6] => 80 [3] => 11.25 )

我正在尝试测试数组键是否与 X 匹配,设置一个变量作为它的值。这是我所拥有的:

注意:整个过程是在一个 while 循环中执行的,所以 $thegroup['group_id'] 的值会改变。在此示例中,我将其值设置为“6”。

$thegroup['group_id'] = "6" // This particular group (for simplicity)

if (array_key_exists($thegroup['group_id'], $group_wages_array)) 

    $this_wages = // Need this to be 80... how do I do it?


那么,如何让 $this_wages 等于键值?

【问题讨论】:

应该可以。如果没有,请尝试将 $thegroup['group_id'] 转换为 int。 您可以使用任何您想要的作为数组键,只要 php 可以将其类型转换为字符串或整数。这包括将一个数组引用嵌入到另一个数组引用中:$outer[$inner[1]],所以是$group_wages_array[$thegroup['group_id']] +1 详细了解您的变量是什么以及如何使用它们。我希望更多的人会这样做,而不是仅仅在没有足够上下文的情况下转储代码。 【参考方案1】:

你正在尝试做的事情:

$group_wages_array[6];

$thegroup['group_id'] = 6;

您可以将其替换为键。

if (array_key_exists($thegroup['group_id'], $group_wages_array)) 
    $this_wages = $group_wages_array[$thegroup['group_id']];   

【讨论】:

好吧,当我使用双括号$this_wages = $combined_group_wages[$thegroup['group_id']];时它工作了@ 你是对的,那是一个语法错误,现在应该是正确的。感谢您指出这一点。【参考方案2】:

您只需使用数组中的密钥来获取它:

$thegroup['group_id'] = "6" // This particular group (for simplicity)

if (array_key_exists($thegroup['group_id'], $group_wages_array)) 
    $this_wages = $group_wages_array[$thegroup['group_id']];

此外,数组键不是 0、1、2 等,因为您在 Array ( [1] => 500 [4] => 44 [6] => 80 [3] => 11.25 ) 中明确设置了它们

【讨论】:

以上是关于PHP 如果array_key_exists,变量等于数组值:如何?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 中数组函数 isset 效率比 array_key_exists 更高

php array_key_exists() 与 isset() 的区别

传递数组以设置变量

PHP isset, array_key_exists配合使用, 并解决效率问题

php array_key_exists 的多维数组版本

PHP 判断数据类型