如何在循环外输出值?

时间:2015-12-02 05:54:33

标签: php arrays

我有这段代码。

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

for($i=5; $i< count($arr); $i++) {

    echo $arr[$i]. "<br>";

}

并输出:

  

6
7
8
9

我搜索如何在循环外输出,并将代码更改为

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

$res = "";
for($i=5; $i< count($arr); $i++) {

    $res .= $arr[$i];

}
echo $res. "<br>";

但输出是

  

6789

4元素变为1.我想在循环外得到输出,输出不会像6789

我希望输出为

  

6
7
8
9

因为我想使用像

这样的数据
  

http://1.1.1.0:8000/con/search.json?id= 6
http://1.1.1.0:8000/con/search.json?id= 7
http://1.1.1.0:8000/con/search.json?id= 8
http://1.1.1.0:8000/con/search.json?id= 9

而不是像

  

http://1.1.1.0:8000/con/search.json?id= 6789

5 个答案:

答案 0 :(得分:2)

最佳解决方案(不需要for循环,只需使用implode()

<?php
    $arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
    echo implode("<br>",$arr);
?>

要获得某些范围内的值,请使用(如我所建议的@kojiro)

<?php
    $arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
    echo implode('<br>', range(6, 9));
?>

或尝试这样

$res .= "http://1.1.1.0:8000/con/search.json?id=".$arr[$i] ."<br>";

输出

  

6

     

7

     

8

     

9

演示here

修改

for($i=5; $i< count($arr); $i++) {
    $res[] = "http://1.1.1.0:8000/con/search.json?id=".$arr[$i];
}
 echo implode("<br>",$res);

答案 1 :(得分:1)

您可以将array_sliceimplode一起使用,如

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
echo "http://1.1.1.0:8000/con/search.json?id=".implode("\nhttp://1.1.1.0:8000/con/search.json?id=",array_slice($arr,5));

Demo

答案 2 :(得分:0)

使用\r\n

更改此

$res .= $arr[$i];

到这个

$res .= "\r\n".$arr[$i];

或尝试此代码: -

for($i=5; $i< count($arr); $i++) {

$res .= "\r\n".$arr[$i];

}

Demo

答案 3 :(得分:0)

你可以做类似于你现有的事情:

<?php
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$res = '';
$res2 = '';

for($i=5; $i< count($arr); $i++) {
  $res .= $arr[$i] . "\n";
  $res2 .= $arr[$i] . '<br>';
}
echo $res;
echo $res2;
?>

命令行上的$ res将在各自的行中输出6,7,8和9。如果您使用的是浏览器,$ res2将在各自的行中显示6,7,8和9。

答案 4 :(得分:0)

以下代码可根据您的要求使用

<?php
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$res = "";
for($i=5; $i< count($arr); $i++) {
   $res .= $arr[$i] . '<br />';
}
echo $res;
?>