猿问

对多个多维数组执行相同的逻辑

我目前正在尝试以下操作:


我定义了多个数组。它们都是通过从数据库中获取数据来填充的,因此它们都包含相同的列/数据结构,但具有不同的数据。例如,假设数组是不同的学校,所以有:


//pseudoCode:

array1 = ({"Name: Peter", "Surname: not peter"},{"Name: doe", "Surname: john"});

array2 = ({"Name: asfwe", "Surname: qwfqwf"},{"Name: asfas", "Surname: fsbng"});

array3 = ({"Name: weqw", "Surname: wqeqewqw"},{"Name: doqweqwee", "Surname: wewe"});

现在,对于所有这些数组,我想做同样的事情。就我而言,我有多个 if else 情况,检查数组的长度并做一些事情。


到目前为止,我只为数组 1 做这件事。现在我的第一个想法是简单地复制逻辑并将所有变量名称分别重构为 array2 到 array3,但这没有意义,因为在我的真实情况下,它的 10 个数组而不是 3 个,逻辑大约是 150 行代码,所以我会有很多重复的代码,如果逻辑中的某些内容发生变化,我需要在任何地方更改它。


现在的问题是:如何对每个数组执行相同的过程?


所以我需要的是:


//pseudoCode again

foreach(array in array1, array2, array3, array4, array5,....){

//do something with variable "array", which is actually one of the defined arrays

}

正确方向的提示会很棒。


先感谢您。


翻翻过去那场雪
浏览 137回答 1
1回答

隔江千里

程序代码要求导出逻辑函数:function foo($array) {    // modify the array or do what ever you need    return $array; // in case it has been modify}现在你可以作为:foreach($arrays as &$arr)    $arr = foo($arr); // calling the function on each array    // the re-assign is just in case it has been modify在这个例子中$arrays,所有内部数组都代表数组:$arrays = array($array1, $array2, $array3, ...) 如果您的数组从其他函数/SQL 代码动态获取,请执行以下操作:$arrays = []; // init empty arraywhile (@SOME_CONDITION@) {    $arrays[] = getAnotherArrayFunction(); // append the array to your array}
随时随地看视频慕课网APP
我要回答