我要做的是执行我为循环中的每个变量创建的函数;像这样:
for ($i = 1; $i <= 3; $i++) {
foreach($i as $y){
$test = my_func('test function number:'.$y');
}
}
,结果应该是这样的:
test function number:1
test function number:2
test function number:3
不是
test function number:123
更新
该函数实际上是基于URL而不是显示,我想要的是每次基于$i
以及3
语句中的另一个for
执行URL的函数正在给我$i=4
而非$i=1
$i=2
和$i=3
......等等
更新2
我刚试过这个:
$i = range(1,5);
foreach($i as $page){
$test = my_func('http://www.test.com/cars/page'.$page);
}
结果是针对页面http://www.test.com/cars/page5
....任何想法?
答案 0 :(得分:1)
由于您在每次运行中覆盖$test
,如果之后回显$test
,则只获得4作为“输出”。
在循环中回显:
function my_func($val) { return $val; }
for ($i = 1; $i <= 3; $i++) {
echo my_func('test function number: ' . $i);
}
或将输出放入一个数组并迭代它或稍后implode
:
function my_func($val) { return $val; }
$text = array();
for ($i = 1; $i <= 3; $i++) {
$text[] = my_func('test function number: ' . $i);
}
echo implode(' - ', $text);
您似乎缺乏如何在PHP中处理变量和函数的基础知识 - 所以可能是时候进行一些begginer教程了。
答案 1 :(得分:-1)
不需要使用foreach,只需使用for
循环即可。像这样:
for ($i = 1; $i <= 3; $i++) {
$test = my_func('test function number: '. $i);
}
这可能会有所帮助:)
答案 2 :(得分:-1)
如果你有一组数值,你可以使用 array_walk 这个函数。
请参阅:http://php.net/manual/en/function.array-walk.php
<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2<br />\n";
}
echo "Before ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";
array_walk($fruits, 'test_print');
?>
以上示例将输出:
Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple