2012-06-13 92 views
1

我有一個數組:獲得子陣列關鍵的PHP

Array 
( 
[47] => Array 
    (
     [name] => 3543 good 
     [price] => 100.0000 
     [image] => data/hp_1.jpg 
     [discount] => 
     [stock_status] => 
     [weight_class] => kg 
    ) 

[28] => Array 
    (
     [name] => HTC Touch HD 
     [price] => 100.0000 
     [image] => data/htc_touch_hd_1.jpg 
     [discount] => 
     [stock_status] => 
     [weight_class] => g 
    ) 

[41] => Array 
    (
     [name] => iMac 
     [price] => 100.0000 
     [image] => data/imac_1.jpg 
     [discount] => 
     [stock_status] => 
     [weight_class] => kg 
    ) 

[40] => Array 
    (
     [name] => iPhone 
     [price] => 101.0000 
     [image] => data/iphone_1.jpg 
     [discount] => 
     [stock_status] => 
     [weight_class] => kg 
    ) 
) 

我需要的子陣列鍵(47,28等),因爲它是我的產品ID

我跑foreach循環獲取詳細信息並分配給新陣列,例如'name' => $result['name'],但無法弄清楚如何定位產品ID。在它

foreach($array as $product_id => $result) 
    echo $product_id . ' costs ' . $result['price'] . "\n"; 
+0

[PHP foreach循環鍵值]的可能重複(https://stackoverflow.com/questions/1834703/php-foreach-loop-key-value) – mickmackusa

回答

2

您可以分配的關鍵變量在您的foreach循環:

foreach($array as $id => $result) { 
    $item = array('name' => $result['name'], 'id' => $id); 
} 
+0

感謝新的它會是簡單的事情會盡快堆棧溢出允許 –

+0

如果我想獲得數組的子數組的鍵,那麼怎麼辦? –

0

的關鍵變量添加到你的foreach循環,像這樣。

foreach($array as $key=>$value) { 
    echo $key; // this is what you need, if I got you right 
} 
1

迭代與一個鍵值對一個關聯數組:

1

foreach允許您通過迭代這樣不僅值,而且按鍵:

foreach($items as $key => $value) 
{ 
    ... 
} 

在你的情況下,它看起來像:

foreach($results as $id => $result) 
{ 
    $item = array('name' => $result['name'], 'id' => $id, ...); 
}