2

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

这是我的功能:

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

它说 OK TO SEND... 我想将 qty() 的结果合并到 parts_requested() 上的 return 上,就在 OK TO SEND 之后。

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

4

3 回答 3

0

我不知道是否理解它,但我会这样做:

return 'OK TO SEND: ' . $result . qty($numbers);

或者你可以用一个数组来做,然后把它合并到外面:

$result = array();
$result[]= parts_requested($params);
$result[]= qty($numbers);
echo implode($result,'');

根据要求更新答案

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

function parts_requested($params, $numbers) {

然后在part_requested更改添加逗号的行:

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

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

于 2013-06-17T21:33:48.307 回答
0

您正在做的事情有更好的解决方案,但请尝试以下方法:

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

}
于 2013-06-17T22:17:46.543 回答
0

不确定我是否完全理解了这个问题以及为什么你有重复的功能,但它看起来很简单:

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

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

于 2013-06-17T22:42:51.400 回答