рефакторинг и использование счетчика? - PullRequest
0 голосов
/ 03 ноября 2010

У меня есть следующая структура:

$text_1 = $this->getValue('value_1');
$text_2 = $this->getValue('value_2');
$text_3 = $this->getValue('value_3')

А также следующее:

    foreach($text_1 as $t_1)
    {
        if(!$first)
        {
            $string_1 .= ",";

        }
        $first = false;
        $string_1 .= $t_1;
    }

    foreach($text_2 as $t_2)
    {
        if(!$first)
        {
            $string_2 .= ",";

        }
        $first = false;
        $string_2 .= $t_2;
    }

    foreach($text_3 as $t_3)
    {
        if(!$first)
        {
            $string_3 .= ",";

        }
        $first = false;
        $string_3 .= $t_3;
    }

Мне было интересно, можно ли это повторно использовать для счетчика, как в цикле for, для замены _1, _2, _3 и т. Д. Из моего кода?

Ответы [ 4 ]

5 голосов
/ 03 ноября 2010

Ну, цикл foreach можно заменить на implode.

Кроме того, не лучше ли использовать массив для ваших $text_?? переменных? Eg.:

$text = $this->getValue('value');
foreach ($text as $value) {
  $strings[] = implode(",", $value);
}

Трудно дать более конкретные советы, без точного контекста, но это должно привести вас в правильном направлении.

1 голос
/ 03 ноября 2010

Надеюсь, это поможет тебе ...

$arrOutput = compact('text_1', 'text_2', 'text_3');
foreach($arrOutput as $t1)
{
    $out1[] = implode(",", $t1);
}
print_r($out1);
0 голосов
/ 05 ноября 2010

Хорошо, поэтому я нашел способ сделать это:

    for ($i=1;$i<=12;$i++) {
         $choices = $this->getValue('question_'.$i);

         $serialized = "";
         $first = true;

         foreach($choices as $choice)
         {
            if(!$first)
            {
                $serialized .= ",";
            }
            $first = false;
            $serialized .= $choice;
        }

        $this->setValue('question_'.$i, $serialized);

     }

Кажется, это работает хорошо!

0 голосов
/ 03 ноября 2010

Да, вам, вероятно, следует использовать массив или карту для хранения значений и перебирать их, предполагая, что значения, с которыми вы имеете дело, - это одно и то же.

...