1 Востаннє редагувалося karmeljuk (27.01.2015 15:13:39)

Тема: Цифри в циклі

Привіт всім. В мене завдання наступного плану: потрібно вивести якось через цикл числа 0 0 0 3 4 5 3 4 5 3 4 5 (далі 3 4 5 повторюються)

На разі мені вдалося вивести лиш рядок 3 4 5 3 4 5 3 4 5 через код:

$time = 3;
if ($time > 5) {$time = 3;}
//Вставляю змінну в потрібне місце
<div class="translate time-<?php echo $time++ * 100; ?>">

Тут ще своє ускладнення в тому, що виведення працює в циклі while

 <?php while ( $loop_services->have_posts() ) : $loop_services->the_post(); ?>
//тут код
 <?php endwhile; ?>

Вся суть ось в чому: є блоки по три в кожному рядку, для них робиться анімація обертання. Потрібно, щоб блоки першого рядку не оберталися взагалі ($time має бути рівним числу 0 або взагалі нічому). В наступних рядках іде обертання з інкрементом в 100мс від лівого до правого

2

Re: Цифри в циклі

так анімація є робиться на js/jquery, навіщо там php?
p.s. на jQuery можна вибирати елементи як в CSS, тобто дуже легко буде виділити оті перші 3 елементи і зробити їм 0

3 Востаннє редагувалося quez (27.01.2015 15:26:52)

Re: Цифри в циклі

FakiNyan написав:

так анімація є робиться на js/jquery, навіщо там php?
p.s. на jQuery можна вибирати елементи як в CSS, тобто дуже легко буде виділити оті перші 3 елементи і зробити їм 0

Прихований текст

http://i.stack.imgur.com/ssRUr.gif

4

Re: Цифри в циклі

quez написав:
FakiNyan написав:

так анімація є робиться на js/jquery, навіщо там php?
p.s. на jQuery можна вибирати елементи як в CSS, тобто дуже легко буде виділити оті перші 3 елементи і зробити їм 0

Прихований текст

http://i.stack.imgur.com/ssRUr.gif

так він же тут анімацію зібрався робити, а не числа додавати, пане Петросян

5

Re: Цифри в циклі

Є алгоритм повторення цифр чи це просто взяті з голови і у них має бути такий порядок? Якщо цифри ви самі придумали - тоді забийте їх в рядок і виводьте, як вам потрібно ;)

6

Re: Цифри в циклі

FakiNyan написав:
quez написав:
FakiNyan написав:

так анімація є робиться на js/jquery, навіщо там php?
p.s. на jQuery можна вибирати елементи як в CSS, тобто дуже легко буде виділити оті перші 3 елементи і зробити їм 0

Прихований текст

http://i.stack.imgur.com/ssRUr.gif

так він же тут анімацію зібрався робити, а не числа додавати, пане Петросян

А по-моєму він якраз те і робить, що додає числа та виводить їх в циклі.

7

Re: Цифри в циклі

quez написав:
FakiNyan написав:
quez написав:
Прихований текст

http://i.stack.imgur.com/ssRUr.gif

так він же тут анімацію зібрався робити, а не числа додавати, пане Петросян

А по-моєму він якраз те і робить, що додає числа та виводить їх в циклі.

ну я не дуже дивився, шо він там робить, просто глянув, шо йому треба якісь блоки анімувати

8 Востаннє редагувалося karmeljuk (27.01.2015 16:48:00)

Re: Цифри в циклі

анімація на css, числа потрібні щоб задати правильні класи для блоків. Алгоритм: перші три блоки повинні мати 0 або взагалі нічого, наступні три блоки мають клас 3, 4, 5 від лівого до правого, далі аналогічно

Якщо кому цікаво - намалюю схематично

9 Востаннє редагувалося quez (27.01.2015 16:58:34)

Re: Цифри в циклі

До циклу while заведіть лічильник, потім перевіряйте його на < 3 в блоці if, і в кінці циклу збільшуйте на 1.

Подякували: karmeljuk1

10

Re: Цифри в циклі

не намагайтеся повторити це в реальному коді!
$arr = [0,3,4,5];
for( $i = 0; $i < 10; ++$i )
{
  echo $i.":".$arr[ ((( $i - 2 + abs( $i - 2 ) )/ 2 - 1) % 3 ) + 1 ].PHP_EOL;
}
Подякували: quez, karmeljuk2

11

Re: Цифри в циклі

koala - спасибі, виводить саме потрібні числа. Проблема на разі в тому, що я писав - я поміщаю цикл for в цикл while і мені виводить замість потрібних дев'яти записів дев'ять копій на кожен з дев'яти записів

Сам цикл тут:

Обережно, гамнокод
function services_init($atts) { ?>

  <div class="services">
    <ul class="items <?php if ( !is_front_page() ) { echo 'animation-service'; } ?>">
      <?php
        global $post;
        extract( shortcode_atts( array(
          'cat'         => '',
          'num'         => '',
          'order'       => '',
          'orderby'     => '',
        ), $atts ) );
        $args = array (
          'category_name'          => $cat,
          'posts_per_page'         => $num,
          'order'                  => $order,
          'orderby'                => $orderby,
        );
        $loop_services = new WP_Query($args);
        $item = 1;

        while ( $loop_services->have_posts() ) : $loop_services->the_post();
        $count_posts = wp_count_posts();
        $arr = array(0,3,4,5);
        for( $i = 0; $i < $num; ++$i ) :
      ?>
      <li class="item-<?php echo $item++;  ?> scale-text">
        <div class="translate time-<?php echo $arr[ ((( $i - 2 + abs( $i - 2 ) )/ 2 - 1) % 3 ) + 1 ].PHP_EOL; ?>">
          <?php if ( has_post_thumbnail() ) : ?>
            <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" class="image">
            <?php the_post_thumbnail('services-thumb'); ?>
            </a>
          <?php endif; ?>
          <h3>
            <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
              <?php the_title(); ?>
            </a>
          </h3>
          <div class="description"><?php the_excerpt(); ?></div>
        </div>
      </li>
    <?php endfor; ?>
    <?php endwhile; ?>
      <?php wp_reset_postdata(); ?>

    </ul>
  </div>

  <?php return ob_get_clean();
}

12

Re: Цифри в циклі

Я ж написав - не використовуйте це в реальному коді!
Ну і хто вам заважає розкрити for в while? Першу дію виносите перед while, останню - перед endwhile.

13

Re: Цифри в циклі

$times = array(300, 400, 500);//вам же саме такі числа потрібні; ну і краще цей масив проголосити один раз, а не в циклі
$startCount = 3;//скільки з початку елементів мають бути
$startTime = 0;//з яким значенням
//якщо це обгортати у функцію, верхні три змінні будуть параметрами
$count = 0;//лічильник
while...//ваш вайл 
  if( $count < $startCount )
    $time = $startTime;
  else
    $time = $times[ $count % count( $times ) ];
  ...//тут ваш код з $time де треба
  ++$count;
endwhile;
Подякували: karmeljuk1

14

Re: Цифри в циклі

Перепрошую, а "гамнокод" це що такий собі сленг про кодування що написане власноруч,  і чому так неповажно?..... який би твій труд не був би, навіть якщо і з помилками, все-рівно неприємний віддтінок, чи я щось не зрозумів?

15

Re: Цифри в циклі

koala написав:
$times = array(300, 400, 500);//вам же саме такі числа потрібні; ну і краще цей масив проголосити один раз, а не в циклі
$startCount = 3;//скільки з початку елементів мають бути
$startTime = 0;//з яким значенням
//якщо це обгортати у функцію, верхні три змінні будуть параметрами
$count = 0;//лічильник
while...//ваш вайл 
  if( $count < $startCount )
    $time = $startTime;
  else
    $time = $times[ $count % count( $times ) ];
  ...//тут ваш код з $time де треба
  ++$count;
endwhile;

Дякую, працює саме так, як потрібно. Я чомусь пхав цикл, а потрібно було умову

16

Re: Цифри в циклі

Анатолій написав:

Перепрошую, а "гамнокод" це що такий собі сленг про кодування що написане власноруч,  і чому так неповажно?..... який би твій труд не був би, навіть якщо і з помилками, все-рівно неприємний віддтінок, чи я щось не зрозумів?

http://lurkmore.to/Быдлокодер