1. PHP / Говнокод #9084

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private function _arrayToString($array)
        {
            $count = count($array);
            $str = '';
            for ($i = 0; $i < $count; $i++) {
                $str .= $array[$i] . ',';
            }
            $str = substr($str, 0, strlen($str) - 1);
            return $str;
        }

    implode ?? не, не слышал!

    Запостил: sqrt, 11 Января 2012

    Комментарии (8) RSS

    • мало того что про implode, так еще и про substr
      strlen($str) - 1 же здесь нафиг не нужно, можно просто substr($str, 0, -1)
      Ответить
    • Видно, что у человека математика в голове есть, а мануалов нету. Нормально, чо... В догугловскую эпоху многие так делали...
      Ответить
    • > for ($i = 0; $i < $count; $i++) {
      > $str .= $array[$i] . ',';
      > }
      > $str = substr($str, 0, strlen($str) - 1);

      А не проще ли так?
      for ($i = 0; $i < $count; $i++) {
        if ($i>0) $str .= ',';
        $str .= $array[$i];
      }
      Ответить
    • в php есть string builder?
      Ответить
      • Нет. Он там нафиг не нужен.
        Ответить
        • Либо стандартные строки ведут себя как string builder, либо php-шников не волнует алгоритмическая сложность. У наивной конкатенации строк O(n^2), если что.
          Ответить
          • Я думаю, стандартные строки везде резервируют место, так что наивная конкатенация даст O(n).
            Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий