Я новичок в программировании. Может ли кто-нибудь помочь мне с этой проблемой?Как фильтровать ассоциативный массив с определенным ключом в PHP?
После print_r($product)
я могу получить следующее: (Извините за грязный формат)
Array ([product_id] => 1 [sku] => BGM0430 [set] => 9 [type] => simple [categories] => Array ([0] => 3 [1] => 11 [2] => 14) [websites] => Array ([0] => 1) [type_id] => simple [name] => Magical Melody Birthday Card [brand] => 3 [card_number] => XW3M0430 [assortment] => BALASST113 [old_id] => [description] =>
Presidential blue is the background for this happy birthday greeting. A delightful bouquet of multicolored balloons stretches up swirling and dodging little golden stars. "Happy Birthday" is written in large cursive across the front of the card. The message continues at the bottom of the card and says, "To You Happy Birthday." Additional golden foiled stars appear at the sides of the card.
[short_description] =>
Presidential blue is the background for this happy birthday greeting. A delightful bouquet of multicolored balloons stretches up swirling and dodging little golden stars. "Happy Birthday" is written in large cursive across the front of the card. The message continues at the bottom of the card and says, "To You Happy Birthday." Additional golden foiled stars appear at the sides of the card.
Message: Wishing you all the best on this wonderful day and throughout the year ahead.
[verse] => Wishing you all the best on this wonderful day and throughout the year ahead. [card_size] => 7 7/8 x 5 5/8 [card_stock] => 10pt C1S Envirocote 10% PCW LS2467 [url_path] => magical-melody.html [envelope] => Gold Lined White [weight] => 0.0000 [category_ids] => Array ([0] => 3 [1] => 11 [2] => 14) [news_from_date] => [required_options] => 1 [news_to_date] => [has_options] => 1 [status] => 1 [image_label] => Magical Melody Birthday Card, Front [url_key] => magical-melody [visibility] => 4 [small_image_label] => Magical Melody Birthday Card, Front [country_of_manufacture] => [thumbnail_label] => Magical Melody Birthday Card, Front [promotion] => 1 [created_at] => 2013-04-05 17:17:25 [updated_at] => 2013-05-30 15:58:50 [price] => 4.0000 [group_price] => Array () [special_price] => [special_from_date] => [special_to_date] => [tier_price] => Array () [msrp_enabled] => 2 [minimal_price] => [msrp_display_actual_price_type] => 4 [msrp] => [enable_googlecheckout] => 1 [tax_class_id] => 2 [meta_title] => [meta_keyword] => [meta_description] => [is_recurring] => 0 [recurring_profile] => [custom_design] => [custom_design_from] => [custom_design_to] => [custom_layout_update] => [page_layout] => [options_container] => container1 [gift_message_available] =>) Array ([product_id] => 2 [sku] => BBC23567 [set] => 9 [type] => simple [categories] => Array ([0] => 6) [websites] => Array ([0] => 1) [type_id] => simple [name] => Faint Flourish Anniversary Card [brand] => 3 [card_number] => [assortment] => EAASST613 [old_id] => [description] => This beautiful anniversary card with elegant flourish design is a wonderful way to recognize employees for their years of hard work. [short_description] =>
This beautiful anniversary card with elegant flourish design is a wonderful way to recognize employees for their years of hard work.
Message: Thank you for your hard work and dedication to the team!
[verse] => Thank you for your hard work and dedication to the team! [card_size] => 8 x 4 11/16 [card_stock] => 100lb 30 % PCW [url_path] => faint-flourish-anniversary-card.html [envelope] => plain white envelope [weight] => 0.0000 [category_ids] => Array ([0] => 6) [news_from_date] => 2013-04-05 00:00:00 [required_options] => 1 [news_to_date] => 2013-04-30 00:00:00 [has_options] => 1 [status] => 1 [image_label] => Faint Flourish Anniversary Card - Front [url_key] => faint-flourish-anniversary-card [visibility] => 4 [small_image_label] => Faint Flourish Anniversary Card - Front [country_of_manufacture] => [thumbnail_label] => Faint Flourish Anniversary Card - Front [promotion] => 0 [created_at] => 2013-04-06 05:47:24 [updated_at] => 2013-05-30 15:34:58 [price] => 4.0000 [group_price] => Array () [special_price] => [special_from_date] => [special_to_date] => [tier_price] => Array () [msrp_enabled] => 2 [minimal_price] => [msrp_display_actual_price_type] => 4 [msrp] => [enable_googlecheckout] => 1 [tax_class_id] => 2 [meta_title] => [meta_keyword] => [meta_description] => [is_recurring] => 0 [recurring_profile] => [custom_design] => [custom_design_from] => [custom_design_to] => [custom_layout_update] => [page_layout] => [options_container] => container1 [gift_message_available] =>) Array ([product_id] => 3 [sku] => BBC23576 [set] => 9 [type] => simple [categories] => Array ([0] => 10) [websites] => Array ([0] => 1) [type_id] => simple [name] => Faint Flourish Get Well [brand] => 3 [card_number] => [assortment] => EAASST613 [old_id] => [description] => This beautiful get well card with elegant flourish design is a wonderful way to share your hopes for a healthier tomorrow. [short_description] =>
This beautiful get well card with elegant flourish design is a wonderful way to share your hopes for a healthier tomorrow.
Message: Sending many warm thoughts and good wishes.
[verse] => Sending many warm thoughts and good wishes. [card_size] => 8 x 4 11/16 [card_stock] => 100lb 30 % PCW [url_path] => faint-flourish-get-well.html [envelope] => plain white envelope [weight] => 0.0000 [category_ids] => Array ([0] => 10) [news_from_date] => 2013-04-05 00:00:00 [required_options] => 1 [news_to_date] => 2013-04-30 00:00:00 [has_options] => 1 [status] => 1 [image_label] => Faint Flouish Get Well Card - Front [url_key] => faint-flourish-get-well [visibility] => 4 [small_image_label] => Faint Flouish Get Well Card - Front [country_of_manufacture] => [thumbnail_label] => Faint Flouish Get Well Card - Front [promotion] => 0 [created_at] => 2013-04-06 05:47:24 [updated_at] => 2013-05-07 22:32:09 [price] => 4.0000 [group_price] => Array () [special_price] => [special_from_date] => [special_to_date] => [tier_price] => Array () [msrp_enabled] => 2 [minimal_price] => [msrp_display_actual_price_type] => 4 [msrp] => [enable_googlecheckout] => 1 [tax_class_id] => 2 [meta_title] => [meta_keyword] => [meta_description] => [is_recurring] => 0 [recurring_profile] => [custom_design] => [custom_design_from] => [custom_design_to] => [custom_layout_update] => [page_layout] => [options_container] => container1 [gift_message_available] =>)
Данные хранятся в $product
и как я могу удалить другие пары ключ-значение, за исключением, когда ключ равно, «имя«ы» ',' price 'и' short_description ', которые я хочу сохранить.
Следующий фрагмент не работает.
foreach($product as $key => $value){
if($key != 'sku' || $key !='name' || $key != 'price' || $key !='short_description'){
unset($product[$key]);
}
}
var_dump($product);
Пожалуйста, дайте мне знать, как я могу исправить это и, пожалуйста, простите меня, если я задам глупый вопрос.
Любой ответ или помощь будут очень признательны. Огромное спасибо заранее.
_Can Я использую следующий фрагмент? _ - Вы уже попробовали? – Federkun
'if (in_array ($ key, array ('sku', 'name', 'price', 'short_description')) === false) {unset ($ product [$ key]);}' –
@Federkun I но это не сработало. Благодарим вас за редактирование. – Lily