0

I'm searching and looking if I can minimize this code. I want to sort order if the condition is true the content come first and then the image and if false the image come first.

<?php if(true): ?>
 <div class="col-md-6">Text Content</div>
 <div class="col-md-6">Image</div>
<?php else: ?>
 <div class="col-md-6">Image</div>
 <div class="col-md-6">Text Content</div>
<?php endif; ?>
Jows
  • 877
  • 2
  • 11
  • 21

3 Answers3

3

You can use ternary operator

Solution:

<?php
$flip   = true;
$text   = 'Text Content';
$image  = 'Image';
?>
<div class="col-md-6"><?php echo $flip ? $text: $image; ?></div>
<div class="col-md-6"><?php echo $flip ? $image: $text; ?></div>

Result with true condition

Text Content 
Image
Bluetree
  • 1,324
  • 2
  • 8
  • 25
0

If you're using Bootstrap (I'm guessing for your col-md- classes) you could use reordering classes.

<div class="row">
    <div class="<?= $condition ? 'order-2 ' : '' ?>col-md-6">Text Content</div>
    <div class="col-md-6">Image</div>
</div>
Jordi Nebot
  • 3,355
  • 3
  • 27
  • 56
0
<?php
$items = [
    '<div class="col-md-6">Text Content</div>',
    '<div class="col-md-6">Image</div>',
];

$reverse = true;
array_map('printf', $reverse ? array_reverse($items) : $items);

Or:

print $reverse
    ? $items[1] . $items[0]
    : $items[0] . $items[1];
Progrock
  • 7,373
  • 1
  • 19
  • 25