2017-10-10 1 views
-1

J'ai ce code:condition IF dans un tableau

$data['products'][] = array(
    'percent'  => sprintf($this->language->get('-%s'), (round((($result['price'] - $result['special'])/$result['price']) * 100 ,0))) . ' %', 
    'product_id' => $result['product_id'], 
    'thumb'  => $image, 
    'name'  => $result['name'], 
    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 
    'price'  => $price, 
    'special'  => $special, 
    'tax'   => $tax, 
    'minimum'  => $result['minimum'] > 0 ? $result['minimum'] : 1, 
    'rating'  => $result['rating'], 
    'href'  => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) 
); 

je dois faire état si price===0, puis percent===0. Pls aide.

+4

Pourquoi ne pas en dehors du tableau? Comme 'if ($ price === 0) $ percent = 0;' juste avant votre tableau. –

+2

Sachez que votre approche conduira à un code illisible –

+0

Vous avez déjà démontré que vous savez comment écrire une instruction conditionnelle en ligne (comme spoonisback a écrit pour vous) @ 'minimum'. Pourquoi demandez-vous comment le faire? – mickmackusa

Répondre

3

Vous pouvez utiliser l'opérateur ternaire:

[ 
    ...., 
    'percent'  => ($price === 0) ? 0 : sprintf($this->language->get('-%s'), (round((($result['price'] - $result['special'])/$result['price']) * 100 ,0))) . ' %', 
    .... 
]