2011-12-17 4 views
1
$shop = array(array(Title => "rose", 
        Price => 1.25, 
        Number => 15 
       ), 
      array(Title => "daisy", 
        Price => 0.75, 
        Number => 25, 
       ), 

      array(Title => "orchid", 
        Price => 1.15, 
        Number => 7 
       ) 
     ); 

У меня есть такой массив. Я хочу преобразовать этот массив по-разному, как показано ниже. Как я могу это сделать?конвертировать многомерную матрицу в по-разному формате

$shop = array ("rose" => Price => 1.25, 
         Number => 15),          
      "daisy" => Price => 0.75, 
         Number => 25),         
      "orchid" => Title => "orchid", 
         Price => 1.15) 
      ); 

ответ

4
$shopsOriginal = array(array(Title => "rose", 
        Price => 1.25, 
        Number => 15), 
       array(Title => "daisy", 
        Price => 0.75, 
        Number => 25), 
       array(Title => "orchid", 
        Price => 1.15, 
        Number => 7)); 

$shops = array(); 

foreach ($shopsOriginal as $shop) { 
    $title = $shop['Title']; // Store the title for this shop 
    unset($shop['Title']); // Remove the title of the shop from the shop information array 
    $shops[$title] = $shop; // Set the shop information in the shops array using the shop's title as key 
} 

var_dump($shops); 
+1

спасибо за ур ответ это работает для меня ... –

0
$shop = array(array('Title' => "rose", 
'Price' => 1.25, 
'Number' => 15 
), 
array('Title' => "daisy", 
'Price' => 0.75, 
'Number' => 25, 
), 

array('Title' => "orchid", 
'Price' => 1.15, 
'Number' => 7 
) 
); 


$new_array = ARRAY(); 

foreach ($shop AS $sub_arr) { 
    //$new_array[$sub_arr['Title']]['Price'] = $sub_arr['Price']; 
    //$new_array[$sub_arr['Title']]['Number'] = $sub_arr['Number']; 

    // edit: adapted to Michael Robinson 
    $this_title = $sub_arr['Title']; 
    unset($sub_arr['Title']); 
    $new_array[$this_title] = $sub_arr; 
} 

var_dump($new_array); 
?> 
+0

спасибо все это ** работало ** для меня –

+1

Если кто-то дал лучший ответ, чем вам, это лучший этикет, чтобы проголосовать за них, а не редактировать ваши, чтобы они соответствовали их! – liquorvicar

+0

@liquorvicar: правый, проголосовали. – djot

0

попробовать это:

$items = array(); 
foreach ($shop as $item) { 
$index = $item['Title']; 
unset($item['Title']); 
$items[$index] = $item; 
} 
print_r($items); 

распечатывает:

Array 
(
[rose] => Array 
    (
     [Price] => 1.25 
     [Number] => 15 
    ) 

[daisy] => Array 
    (
     [Price] => 0.75 
     [Number] => 25 
    ) 

[orchid] => Array 
    (
     [Price] => 1.15 
     [Number] => 7 
    ) 

) 

надеюсь, что это помогает.

Смежные вопросы