Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Разбиваем массив на равные части
#1
Вот написала скриптик, .. в идее лежит вывод данных в 3 столбика равномерно.. Не нашла другого способа, как иначе умно разбивать массив. Может, кто предложит иначе?
PHP код:
//Добавляем див-стили. Условие - кроме заголовкой
if (preg_match("/Предлагаем:|Продается:|Работа:|Разное:/", $value)){array_push ($mass2, $value);}
else{
$kolvo = count($mass2);
if(
$kolvo & 1){array_push ($mass2, '<div style="background-color: #E0E0E0;">&nbsp;&bull;&nbsp;'.$value.'</div>');}
else{
array_push ($mass2, '<div style="background-color: #D5EED4;">&nbsp;&bull;&nbsp;'.$value.'</div>');}
        }
    }
}

//Считаем элементы массива, создаем новых 3 массива и равномерно пихаем данные из родительского массива
$kolvo = count($mass2);
$kolvo = round ($kolvo / 3)+1;  
$result = array(); $result1 = array(); $result2 = array();
for (
$x=0; $x<$kolvo; $x++){array_push($result, $mass2[$x]);}
for (
$x; $x<$kolvo * 2; $x++){array_push($result1, $mass2[$x]);}
for (
$x; $x<$kolvo * 3 ; $x++){array_push($result2, $mass2[$x]);}
$result = implode("<br>", $result); $result1 = implode("<br>", $result1); $result2 = implode("<br>", $result2); 
Ответ
#2
что-то обрезает.. срабатывает фильтр от хсс походу..
PHP код:
$result = implode("<br>", $result); $result1 = implode("<br>", $result1); $result2 = implode("<br>", $result2); 
Ответ
#3
array_chunk будет попроще
Ответ
#4
во блин, хоть переписывай заново! жаль, скрипт уже давно готов и работает..
Ответ
#5
Цитата: Шарфик
Цитата:во блин, хоть переписывай заново! жаль, скрипт уже давно готов и работает..
Ответ: Конечно перепиши, я обычно переписываю если нахожу более простой и лучший вариант. Вот недавно переделал загр. постера на трекере, в фотогалерее тоже упростил код, а то поначалу написал слишком длинный и дублирующийся. Есть такое понятие как рефакторинг скриптов, чем он проще и быстрее работает, тем лучше.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)