Есть много способов выполнить эту задачу, возможно, следующие могут быть интересны, так как вы упомянули array
~, но неясно, как вы собираетесь применять цвет и изображение - так что я догадался.
Этот подход ограничен тем, что вам нужно определить массив цветов / изображений перед итерацией по набору записей, и, как и в настоящее время, произойдет сбой, когда будет достигнут конец массива, если будет больше записей.
<?php
$sql = 'SELECT * FROM pizzas ORDER BY created_at';
$result = mysqli_query($conn, $sql);
$pizzas = mysqli_fetch_all($result, MYSQLI_ASSOC);
mysqli_free_result($result);
mysqli_close($conn);
$styles=array(
['colour'=>'red','image'=>'/images/pizza/p1.jpg'],
['colour'=>'yellow','image'=>'/images/pizza/p2.jpg'],
['colour'=>'green','image'=>'/images/pizza/p3.jpg'],
['colour'=>'blue','image'=>'/images/pizza/p4.jpg'],
['colour'=>'brown','image'=>'/images/pizza/p5.jpg'],
['colour'=>'pink','image'=>'/images/pizza/p6.jpg'],
['colour'=>'orange','image'=>'/images/pizza/p8.jpg']/* etc */
);
?>
<!DOCTYPE html>
<html>
<head>
<title>PHP File</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>
<h4 class="text-center">Project Archives</h4>
<div class="container">
<div class="row">
<?php
foreach( $pizzas as $index => $pizza ){
$style=$styles[ $index ];
$colour=$style['colour'];
$image=$style['image'];
?>
<div class="col-sm-4 case-studies" data-modal="modal5" style="color:<?php echo $colour;?>">
<img src='<?php echo $image;?>' />
<div class="intro-block five">
<h3 class="case-study title"><?php echo htmlspecialchars($pizza['title']);?></h3>
<p class="case-study summary"><?php echo htmlspecialchars($pizza['case_text']);?></p>
<a class="brand-text" href="#">More info</a>
</div>
</div>
<?php } ?>
</div>
</div>
</body>
</html>
Как упомянуто выше. Если у набора записей все еще есть дополнительные записи, но в массиве $ styles больше нет элементов, произойдет ошибка. В этот момент вы могли бы повторно использовать массив $ styles каким-то образом, возможно, так:
$index=0;
foreach( $pizzas as $pizza ){
if( $index > count( $styles ) - 1 ) {
shuffle( $styles );
$index=0;
}
$style=$styles[ $index ];
$colour=$style['colour'];
$image=$style['image'];
/* etc as before ... */
/* content */
/* content */
$index++;
}//end loop