За последние 24 часа нас посетили 16874 программиста и 1646 роботов. Сейчас ищут 1030 программистов ...

Как упростить код ?

Тема в разделе "PHP для новичков", создана пользователем mainet, 1 июн 2012.

  1. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Как упростить код ? Через класс, или функцию.
    Код (Text):
    1.  
    2. <?php
    3. // Создаем массив в котором содержится html1, html2 и т. д.
    4. $html = array();
    5. for($i=1; $i<=20; $i++) {
    6.      // берем 20 данных из xml
    7.      $html[$i]=$params->get('html'.$i);
    8. }
    9.  
    10. $img = array();
    11. for($i=1; $i<=20; $i++) {
    12.      $img[$i]=$params->get('img'.$i);
    13. }
    14.  
    15. $url = array();
    16. for($i=1; $i<=20; $i++) {
    17.      $url[$i]=$params->get('url'.$i);
    18. }
    19.  
    20. $alt = array();
    21. for($i=1; $i<=20; $i++) {
    22.      $alt[$i]=$params->get('alt'.$i);
    23. }
    24. ?>
     
  2. dutchakdev

    dutchakdev Активный пользователь

    С нами с:
    1 июн 2012
    Сообщения:
    2
    Симпатии:
    0
    Ну если я правильно понимаю, может не совсем красиво, то все очень просто:
    Код (Text):
    1. function getData($param, $tag, $quantity='20'){
    2.     $param = array();
    3.     for($i=1; $i<=$quantity; $i++) {
    4.          $param[$i]=$params->get($tag.$i);
    5.     }
    6. }
     
  3. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    А что в $param передавать и как сделать вывод ?

    в и тоге должно быть 3 массива с которыми можно работать:
    Код (Text):
    1.  
    2. $img = array($img1=$params->get('img1'), $img2=$params->get('img2'), $img3=$params->get('img3') и т.д.);
    3. $html = array($html1=$params->get('html1), $html2=$params->get('html2'), $html3=$params->get('html3') и т.д.);
    4. и т.д
     
  4. AcidSlayer

    AcidSlayer Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    А, да, это лишнее. Походу так:
    Код (Text):
    1. function getData($tag, $quantity='20'){
    2.    $param = array();
    3.    for($i=1; $i<=$quantity; $i++) {
    4.         $param[$i]=$params->get($tag.$i);
    5.    }
    6. return $param;
    7. }
    Пользуемся:
    Код (Text):
    1. $img = getData('img');
    Как-то так...
     
  5. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    и получаю массив $param, а надо получить массивы:
    Код (Text):
    1.  
    2. $img = array($img1=$params->get('img1'), $img2=$params->get('img2'), $img3=$params->get('img3') и т.д.);
    3. $html = array($html1=$params->get('html1), $html2=$params->get('html2'), $html3=$params->get('html3') и т.д.);
    4. и т.д
     
  6. AcidSlayer

    AcidSlayer Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Или я не понимаю задачи или все же у вас очень плохо с php.
    Если мы сделаем
    Код (Text):
    1. getData('img');
    мы получим такой масив. Имя переменной разве имеет значение?
     
  7. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Вот так выглядит в оригинале. Задача упростить.

    Код (Text):
    1.  
    2. $img = array($img1=$params->get('img1'), $img2=$params->get('img2'), $img3=$params->get('img3') и т.д. до 20);
    3. $html = array($html1=$params->get('html1), $html2=$params->get('html2'), $html3=$params->get('html3') и т.д. до 20);
    4. и т.д примерно 5
     
  8. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Ребят не ужели нельзя упростить ?
     
  9. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Код (PHP):
    1. <?php
    2. $names = array('html', 'img', 'url', 'alt');
    3. $max = 20;
    4. // Магия
    5. foreach($names as $name) {
    6.     ${$name} = array();
    7.     for($i = 1; $i <= $max; ++$i)
    8.         ${$name}[] = $params->get($name . $i);
    9. }
    10. // Вуа-ля
    11. header('Content-Type: text/plain');
    12. print_r($html);
    13. print_r($img);
    14. print_r($url);
    15. print_r($alt);
    16. ?>
     
  10. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    sobachnik, Спасибо огромное за магию!!!