Возможно ли сделать оператор 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;
}
),
Попробуйте этот код:
<?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
?>
Вы можете сделать это:
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);