【问题标题】:Applying the same function to each array key in an increasing order in php在php中以递增的顺序将相同的函数应用于每个数组键
【发布时间】:2016-05-25 17:18:47
【问题描述】:

我在 php 中使用一个数组,它在函数的帮助下更新数组中的某些值。该函数完美运行,但我想将该函数按递增顺序应用于数组中的每个元素。

下面是函数名。

    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);
     }

如上所述,我怎样才能使函数完成我需要做的事情。哪个是将函数应用于每个数组键?

【问题讨论】:

标签: php function multidimensional-array


【解决方案1】:

这对您的问题有用吗? (用 '$inputarray' 代替你的起始数组)

function some_callback($rowitem, $key, $userdata)
{
    // echo $key;
    CalculateDate($userdata[0], $key, $userdata[1);
}

array_walk($inputarray, 'some_callback', array($swappedarray, $SetupTime));

基本上,数组遍历非常适合为数组中的每个值调用您选择的函数(类似于 array_map,除了 array_walk 可以更轻松地将其他参数传递给回调函数)。

在此代码中,我们通过将您的 $swappedarray 和 $SetupTime 放入一个数组中,将它们传递给回调。如果调用CalculateData 时$swappedarray 没有改变,最好执行以下操作以避免重新创建相同的数组:

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));

让我知道你的效果如何。

https://secure.php.net/manual/en/function.array-walk.php https://secure.php.net/manual/en/function.array-map.php

【讨论】:

    【解决方案2】:

    我只是将函数参数中的数组名称作为参考传递,它就起作用了。 计算日期(&$swappedarray,$row,$SetupTime);

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 2020-05-17
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      相关资源
      最近更新 更多