-5

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

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

更新:$i该函数实际上基于 URL 而不是显示,我想要的是该函数在上述情况下 每次都基于另一个执行 URL ,3并且该for语句给我$i=4and not $i=1 $i=2and $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....有什么想法吗?

4

3 回答 3

1

由于您在每次运行中都覆盖,因此如果您在之后$test回显,您只会得到 4 作为“输出” 。$test

在循环内回显:

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 中处理变量和函数的基础知识 - 所以可能是时候学习一些初学者教程了。

于 2013-07-02T22:18:53.780 回答
-1

不需要使用foreach,只需使用for循环即可。像这样:

for ($i = 1; $i <= 3; $i++) {
    $test = my_func('test function number: '. $i);
}

这可能会有所帮助:)

于 2013-07-02T19:03:27.510 回答
-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
于 2013-07-02T22:17:06.147 回答