2012-09-10 48 views
1

我存儲陣列中的信息在這樣一個循環:如何通過省略一列來從多維數組中獲取數據?

while ($ind = mysql_fetch_array($result)) 
    $array["uniqueName"][$ind][$hash]["mac"] = $mac; 

我怎樣才能得到所有$ Mac的,如果我不給$哈希,讓所有哈希上下文:

$array["uniqueName"][432][?]["mac"] 

我能用''做些什麼?以上?我能否以某種方式忽略它?

+0

首先:你期望最終的數組看起來像什麼? – deceze

+0

$ mac的列表。它甚至不需要是一個數組。我只需要顯示所有存儲在$ id中的$ mac,而不是$ hash – trainoasis

+1

'foreach($ array [「uniqueName」] [$ id] as $ hash => $ comp){if(isset($ comp [ 「mac」]))}'這樣? – Passerby

回答

4

可以循環在哈希鍵是這樣的:

$macs = array(); 
foreach($array["uniqueName"][$ind] as $hash){ 
    array_push($macs, $hash["mac"]); 
} 

更新的評論:

foreach語句載荷每一個關鍵$陣列[ 「uniqueName」] [$ ID]包含到$散列變量,一個接一個。所以你不必知道這些鍵究竟是什麼(或者甚至是有的),你可以通過使用$ hash var來引用它們來使用它們。所以實際上,foreach語句遍歷所有鍵$ array [「uniqueName」] [$ id] contains。

+0

'$ array [「uniqueName」] [$ id] as $ hash'是做什麼的? – trainoasis

+0

我在我的回答中添加了一些說明 – Asciiom

+0

我可以有這個問題,因爲我有幾個數組(實際上$ GLOBALS [] [] [] ..)是這樣的: $ array [「uniqueName」] [$ ind] [ $ hash] = $ opSt; $ array [「uniqueName」] [$ ind] [$ hash] [「mac」] = $ mac; $ array [「uniqueName」] [$ ind] [$ hash] [「name」] = $ name; ? – trainoasis