在php中,以递增的顺序对每个数组键应用相同的函数
我在php中使用一个数组,它在函数的帮助下更新数组中的某些值。这个函数工作得很完美,但我想以递增的顺序将该函数应用于数组中的每个元素 下面是函数名在php中,以递增的顺序对每个数组键应用相同的函数,php,function,multidimensional-array,Php,Function,Multidimensional Array,我在php中使用一个数组,它在函数的帮助下更新数组中的某些值。这个函数工作得很完美,但我想以递增的顺序将该函数应用于数组中的每个元素 下面是函数名 CalculateDate($swappedarray,$row,$SetupTime); 参数$row是每个数组元素的键号。 我想让函数做这样的事情 CalculateDate($swappedarray,0,$SetupTime); CalculateDate($swappedarray,1,$SetupTime);
CalculateDate($swappedarray,$row,$SetupTime);
参数$row是每个数组元素的键号。
我想让函数做这样的事情
CalculateDate($swappedarray,0,$SetupTime);
CalculateDate($swappedarray,1,$SetupTime);
CalculateDate($swappedarray,2,$SetupTime);
依此类推,直到最后一个键号。
当功能正常工作时。我只是无法使用for循环来执行此操作。“for循环”的代码不起作用,我尝试的代码如下
for ($row = 0; $row <= $maxnum; $row++)
{
CalculateDate($swappedarray,$row,$SetupTime);
}
for($row=0;$row这能解决您的问题吗?(用“$inputarray”代替起始数组)
基本上,array walk适合为数组中的每个值调用您选择的函数(类似于array_map,只是array_walk更容易将其他参数传递给回调函数)
在这段代码中,我们通过将$swappedarray和$SetupTime放入数组来将它们传递给回调。如果$swappedarray在调用CalculateData时没有更改,则最好执行以下操作以避免重新创建相同的数组:
function some_callback($rowitem, $key, $userdata)
{
// echo $key;
CalculateDate($userdata[0], $key, $userdata[1);
}
$walk_arguments = array($swappedarray, $SetupTime);
array_walk($inputarray, 'some_callback', array($swappedarray, $walk_arguments));
让我知道这对你有什么好处
我刚刚在函数参数中传递了数组名作为引用,它成功了。
计算日期(&$swappedarray、$row、$SetupTime)
function some_callback($rowitem, $key, $userdata)
{
// echo $key;
CalculateDate($userdata[0], $key, $userdata[1);
}
$walk_arguments = array($swappedarray, $SetupTime);
array_walk($inputarray, 'some_callback', array($swappedarray, $walk_arguments));