2011-10-12 73 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