如何为循环中的每个变量执行一个函数?

时间:2013-07-02 18:57:49

标签: php

我要做的是执行我为循环中的每个变量创建的函数;像这样:

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 ....任何想法?

3 个答案:

答案 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