Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中合并两个函数的返回?_Php - Fatal编程技术网

如何在php中合并两个函数的返回?

如何在php中合并两个函数的返回?,php,Php,我有两个函数,如果可能的话,需要合并它返回的字符串 以下是我的功能: function qty($numbers) { $numbers = array($this->strips_qty, $this->lancet_qty, $this->battery_qty, $this->misc_qty); function qty($n

我有两个函数,如果可能的话,需要合并它返回的字符串

以下是我的功能:

function qty($numbers) {
    $numbers = array($this->strips_qty, $this->lancet_qty, $this->battery_qty, 
                                                            $this->misc_qty);

    function qty($numbers) {
        foreach ($numbers as $stock) {
            if ($stock)
                $result .= $stock . '<br>';
        }
        return $result;
    }

    if ($result = qty($numbers))
        return '(' . $result . ')';
}

function parts_requested($params) {
    $params = array($this->meter, $this->strips, $this->lancets, $this->control, 
                                        $this->ld, $this->battery, $this->misc);

    function parts_requested($params) {
        foreach ($params as $part) {
            if ($part)
                $result .= $part . ',';
        }
        return $result;
    }

    if ($result = parts_requested($params))
        return 'OK TO SEND: ' . $result;
}
功能数量($number){
$numbers=阵列($this->strips\u数量,$this->lancet\u数量,$this->battery\u数量,
$this->misc_数量);
功能数量($number){
foreach(数字为$stock){
如果(股票)
$result.=$stock.“
”; } 返回$result; } 如果($result=数量($number)) 返回“(“$result.”); } 请求的功能部件($params){ $params=array($this->meter,$this->strips,$this->lancets,$this->control, $this->ld,$this->battery,$this->misc); 请求的功能部件($params){ foreach($params作为$part){ 如果(部分) $result.=$part.,'; } 返回$result; } 如果($result=请求的零件($params)) 返回“确定发送:”。$result; }
上面写着“可以发送”的地方。。。我想在单词OK to SEND之后,将qty()的结果合并到parts_requested()的返回中


任何帮助都将不胜感激。提前谢谢。

我不知道是否理解得很好,但我会这样做:

返回“确定发送:”$结果。数量(数字)

或者,您可以使用数组并将其合并到外部:

$result = array();
$result[]= parts_requested($params);
$result[]= qty($numbers);
echo implode($result,'');
根据要求更新答案

将第二个函数的定义更改为:

function parts_requested($params, $numbers) {
然后在所请求的部分更改添加逗号的行:

`$result .= qty($numbers) . $part . ',';`

但我看不出每次循环重复时数字都在哪里更新。

有更好的解决方案,但请尝试以下方法:

// example outputs
$parts = 'OK TO SEND: 10CTNOVAMAX,743014';
$quantities = '5<br>6<br>';

$parts = array_split($parts, ': ');
$parts = array_split($parts[1], ',');
$quantities = array_split($quantities, '<br>');

$result = 'OK TO SEND: ';

foreach($parts as $key->$value) {

    $result .= '('.$quantities[$key].') '.$value;

}
//示例输出
$parts='可以发送:10CTNOVAMAX,743014';
$数量='5
6
'; $parts=array_split($parts,,:'); $parts=array_split($parts[1],','); $quantities=array_split($quantities,
); $result='确定发送:'; foreach($key->$value形式的零件){ $result.='('.$quantities[$key].')。$value; }
我不确定我是否完全理解了这个问题以及为什么会有重复的函数,但它似乎很简单:

function qty($numbers) {
  $numbers = array($this->strips_qty, $this->lancet_qty, $this->battery_qty, 
                                                        $this->misc_qty);
  $result = '';

  function qty($numbers) {
    foreach ($numbers as $stock) {
        if ($stock)
            $result .= $stock . '<br>';
    }
    return $result;
  }

  if ($result = qty($numbers))
    return '(' . $result . ')';
}

function parts_requested($params, $numbers) {
  $params = array($this->meter, $this->strips, $this->lancets, $this->control, 
                                    $this->ld, $this->battery, $this->misc);

  $result = '';

  function parts_requested($params) {
    foreach ($params as $part) {
        if ($part)
            $result .= $part . ',';
    }
    return $result;
  }

  if ($result = parts_requested($params))
    return 'OK TO SEND: ' . qty($numbers) . $result;
}
功能数量($number){
$numbers=阵列($this->strips\u数量,$this->lancet\u数量,$this->battery\u数量,
$this->misc_数量);
$result='';
功能数量($number){
foreach(数字为$stock){
如果(股票)
$result.=$stock.“
”; } 返回$result; } 如果($result=数量($number)) 返回“(“$result.”); } 请求的功能部件($params,$number){ $params=array($this->meter,$this->strips,$this->lancets,$this->control, $this->ld,$this->battery,$this->misc); $result=''; 请求的功能部件($params){ foreach($params作为$part){ 如果(部分) $result.=$part.,'; } 返回$result; } 如果($result=请求的零件($params)) 返回“确定发送:”。数量($number)。$result; }

请注意,我还必须在每个函数的开头定义
$result
,并且您必须像这样调用您的函数:
请求的部分($params,$numbers)
该函数将调用另一个函数并插入结果。

这可能在这两个函数之外完成。。。或者在第三个函数中,如果您愿意(通过使用返回值并将值从一个函数传递到另一个函数):)我该怎么做?您是说没有完全工作?你能输入输出或你想要什么吗?可以发送:10CTNOVAMAX,743014<产品编号,但没有数量。我希望是这样的:确定发送:(5)10CTNOVAMAX,(2)此处的任何产品。如果为10CTNOVAMAX选择了5qty,为任何其他产品选择了2,则上述内容将是。希望这更清楚。如果($result=qty($numbers)),行中有一个错误,它不应该是==而不是=?也许第二个选项会更好地工作,但我无法将其集成并使其在现有函数中工作。