2011-10-12 83 views
3

我合并两个数组,以创建以下阵列,名为$ group_wages_arrayPHP如果array_key_exists,变量等于数组值:如何?

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等于键值呢?

+0

这应该工作。如果不是,请尝试将'$ thegroup ['group_id']'强制转换为int。 – BoltClock

+0

只要PHP可以将它转换为字符串或整数,就可以使用任何你想要的数组作为数组键。这包括在另一个内嵌入一个数组引用:'$ outer [$ inner [1]]',所以'$ group_wages_array [$ thegroup ['group_id']]''。 –

+0

+1以详细了解您的变量以及如何使用它们。我希望更多的人会这样做,而不是仅仅在没有足够上下文的情况下抛弃代码。 – Herbert

回答

7

你只需要使用钥匙从阵列中获得它:

$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)

+0

好的谢谢澄清。它按照你的例子工作。 – Oseer

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']]; 
} 
+0

好的,当我使用双括号''this_wages = $ combined_group_wages [$ thegroup ['group_id']];' – Oseer

+0

时,它工作正常,这是一个语法错误,现在应该是正确的。感谢您指出了这一点。 – Gazler