Как выводить по 3 фото в строку

Логика решения достаточна проста. Мы собираем все нужные нам фотографии (картинки) для вывода, в один массив. Назовём массив $arr. Далее используя встроенную функцию PHP array_chunk($arr, $num), делим массив на нужное количество элементов.
array array_chunk ( array input, int size [, bool preserve_keys])

array_chunk() делит массив на несколько массивов с size количеством значений в них. В конце может получиться массив с меньшим количеством значений. Вы можете получать эти массивы как члены многомерного массива, индексированного числами, начиная с 0.

Установив необязательный параметр preserve_keys в TRUE, вы можете заставить PHP сохранить оригинальные ключи массива ввода. Если вы специфицировали FALSE, будут использованы новые числовые индексы в каждом результирующем массиве с индексированием, начиная с нуля. По умолчанию FALSE.
Листинг № 1 - Делим массив $arr на массивы с заданным количеством значений в каждом массиве. В зависимости от количества значений в массиве $arr, сформируется разное количество массивов с заданным количеством элементов в каждом из них.
<?php 
     
$arr = array('1.gif', '2.gif', '3.gif', '4.gif', '5.gif', '6.gif'); 
     
    $arr2 = array_chunk($arr, 3); 

    for($i=0; $i < count($arr2); $i++) 
    { 
        for($j=0; $j < count($arr2[$i]); $j++) 
        { 
            echo '<img src="/images/'.$arr2[$i][$j].'">';     
        } 
        echo '<br><br>'; 
    } 

?>

Ниже представлена функция, первый аргумент которой принимает массив (array), второй аргумент целое число (int), который и определяет количество фоток на одну строку.
Листинг № 2 - Функция для вывода построчно, определённого количества картинок на одной строке.
<?php 

// Функция форматирования фотографий по строкам 
function chunk_img($arr, $num) 
{ 
     
    if(is_array($arr)) 
    { // если аргумент массив, то скрипт  исполняется  
        $arr2 = array_chunk($arr, $num); 
     
        for($i=0; $i < count($arr2); $i++) 
        { 
            for($j=0; $j < count($arr2[$i]); $j++) 
            { 
                $t .= '<img src="/images/'.$arr2[$i][$j].'">';     
            } 
            $t .= '<br><br>'; 
        } 
         
        return $t; // возвращает отформатированную строку с фотографиями 
    } 
    else 
    { 
        return false;     
    } 
     
} 

echo chunk_img($arr, 2); 

?>

Урок закончен.
Теги:
массив
Добавлено: 21 Мая 2018 07:28:22 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...