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() 的区别