2012-06-13 2 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 и т.д.), как это мой идентификатор продукта

Я бег цикл Еогеаспа к получить детали и присвоить новый массив, например 'name' => $result['name'], но не может понять, как настроить идентификатор продукта.

+0

Возможный дубликат [Значение ключа цикла PHP foreach] (https://stackoverflow.com/questions/1834703/php-foreach-loop-key-value) – mickmackusa

ответ

2

Вы можете назначить ключ к переменной в цикле Еогеасп:

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

Спасибо, что это было бы просто, что будет галочкой, как только переполнение стека разрешает –

+0

Что делать, если я хочу получить ключи суб-массивов массива. –

0

Добавьте ключевые переменный в ваш foreach цикла, например, так:

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

перебирать его как ассоциативный массив с парой ключей значения.

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

foreach позволяет перебирать не только значения, но и ключи таким образом:

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

В вашем случае это будет выглядеть так:

foreach($results as $id => $result) 
{ 
    $item = array('name' => $result['name'], 'id' => $id, ...); 
} 
Смежные вопросы