繁体   English   中英

PHP - 使用不同参数调用 function 两次的最佳实践

[英]PHP - best practice to call a function twice with a different param

我有以下 function:


function sortRelevantId($idArray, $maxIds, $xml, $idTpe)
{
    for ($i = count($idArray); $i < $maxIds; $i++) {
        if ($xml->sub[$i]->type == $idTpe) {
            $idArray[] = $i;
        }
    }
    return $idArray;
}



I call these like so, 
$idArray = [];
$idArray= sortRelevantId($idArray , $maxIds, $xml, "a");
$idArray= sortRelevantId($idArray , $maxIds, $xml, "b");

我想知道如何更改 function 以便我只需要调用 function 和 function 中的逻辑在类型“a”之后重新运行“a”和“”

谢谢你的帮助

您可以如下更改您的代码。

function sortRelevantId($idArray, $maxIds, $xml, array $idTpe)
{
    $idArray = array();
    for ($i = count($idArray); $i < $maxIds; $i++) {
      foreach($idTpe as $item) {
        if ($xml->sub[$i]->type == $item) {
            $idArray[] = $i;
        }
      }
    }
    return $idArray;
}

$idArray= sortRelevantId($idArray , $maxIds, $xml, array("a","b"));

您可以为此使用array_reduce ,方法是将一个结果的 output 作为输入传递给另一个结果,最后返回该值。

<?php

$idArray = array_reduce(["a", "b"], fn($carry, $item) => sortRelevantId($carry, $maxIds, $xml, $item), []);

print_r($idArray);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM