Reputation: 3931
$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
)
);
I have an array like this. I want to convert this array keywise like below. How can I do that?
$shop = array ( "rose" => Price => 1.25,
Number => 15 ),
"daisy" => Price => 0.75,
Number => 25 ),
"orchid" => Title => "orchid",
Price => 1.15)
);
Upvotes: 0
Views: 88
Reputation: 2947
$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);
?>
Upvotes: 0
Reputation: 1507
try this:
$items = array();
foreach ($shop as $item) {
$index = $item['Title'];
unset($item['Title']);
$items[$index] = $item;
}
print_r($items);
prints out:
Array
(
[rose] => Array
(
[Price] => 1.25
[Number] => 15
)
[daisy] => Array
(
[Price] => 0.75
[Number] => 25
)
[orchid] => Array
(
[Price] => 1.15
[Number] => 7
)
)
hope this helps.
Upvotes: 0
Reputation: 29498
$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);
Upvotes: 3