IF или Switch внутри массива

0

Возможно ли сделать оператор if/else или switch внутри массива?

Например, у меня есть этот массив

'images' => array(
          array(
                'link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer .'.jpg'
          ),
      ),

Теперь я хочу проверить, есть ли более 1 изображения, если да добавить массив. Моя мысль была такая, но она не работает.

    <?php

$images = (string)$product->aantalfotos;

'images' => array(
    switch ($images) {
        case 1:
            array(
                'link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer .'.jpg'
            ),
        break;

        case 2:
            array(
                'link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer .'.jpg'
            ),
            array(
                'link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer .'_2.jpg'
            ),
        break;

        case 3:
            array(
                'link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer .'.jpg'
            ),
            array(
                'link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer .'_2.jpg'
            ),
            array(
                'link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer .'_3.jpg'
            ),
        break;
    }
),
  • 0
    Ты это пробовал?
  • 0
    конечно, но это не работает :)
Показать ещё 4 комментария
Теги:

2 ответа

1
Лучший ответ

Попробуйте этот код:

<?php

$images = (string)$product->aantalfotos;

for ($working = array(), $i = 1, $suffix = ''; $i <= $images; $i++)
{
    $working[] = array('link' => 'http://graphics.edc-internet.nl/500/'.(string)$product->artikelnummer.$suffix.'.jpg');
    $suffix = '_'.($i + 1);
}

// Use $working in 'images' => $working

?>
  • 0
    офигенно, отлично работает! Спасибо :)
0

Вы можете сделать это:

aantalfotos;

        switch($images) {
            case 1:
                $x = array('link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer . '.jpg');
            break;

            case 2:
                $x = array('link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer . '.jpg',
                    array('link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer . '_2.jpg'));
            break;

            case 3:
                $x = array('link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer . '.jpg',
                array('link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer . '_2.jpg'),
                array('link' => 'http://graphics.edc-internet.nl/500/' . (string)$product->artikelnummer . '_3.jpg'));
            break;
        }

if(!empty($x)) {
    $images[] = ($x);
}

print_r($images);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню