将for循环中的数组转换为字符串

时间:2011-11-13 14:37:23

标签: php arrays string

如果我有这样一个简单的代码:

   $a="hi";

   for($i=0;$i<3;$i++)
  {
   echo $a;
  }

因此输出将为hihihi,是否可以将其转换为$b="hihihi"之类的字符串而不再通过循环? 我正在将它用于其他功能...

感谢。

5 个答案:

答案 0 :(得分:4)

您可以使用str_repeat($str, $count)来实现此目标:

$str = str_repeat("hi", 3);
echo $str;

以上代码将打印“hihihi”。

以下是它的文档:http://www.php.net/manual/en/function.str-repeat.php

答案 1 :(得分:2)

我会假设你的情况比给出的例子稍微复杂一点......

一种选择是不将变量回显到缓冲区。相反,将它们附加到您自己的变量:

$out = '';
for ($i = 0; $i < 3; ++$i) {
    $out .= 'hi';
}

echo $out; // "hihihi"

但是,如果由于某种原因,您可以控制的代码中没有发生回声,则可以使用output buffering

ob_start();
for ($i = 0; $i < 3; ++$i) {
    doSomethingWhichPrintsHi();
}
$out = ob_get_clean();  // "hihihi"

答案 2 :(得分:1)

有没有循环的选项:

$b = str_repeat('hi', 3); // hihihi

或者,如果你有一个数组:

$array = array ( 'hi', 'bye', '!!!' );
$b = implode('', $array); // hibye!!!

答案 3 :(得分:1)

您可以使用str_repeat(string $input, int $multiplier)

$b = str_repeat($a, 3);

另见example

答案 4 :(得分:-3)

<?php
function stringdoubler($string, $duplicates) {
  if ($duplicates > 1)
    $string = $string . stringdoubler($string, $duplicates-1);
  return $string;
}

echo stringdoubler("hi",3);

?>