【发布时间】:2021-10-27 06:56:27
【问题描述】:
我正在寻找将 2 个 foraech 循环合并为一个的方法(合并 2 个函数): 结果函数应该同时返回:($is - boolean & $d - array)。 两个函数中的可遍历数据 - 相同。 可能吗?什么是一个好的解决方案?
public function func1($p, $c) {
$is = 0;
if (!empty($p)) {
foreach($p as $k=>$v) {
if ((!empty($c['prod']) && $c['prod'] == $v['ref'] && $c['status'])) {
$is = 1;
break;
}
}
}
return $is;
}
public function func2($p) {
$d = [];
if (!empty($p)) {
foreach($p as $k=>$v) {
$prod = [
'name' => $v['name'],
'price' => $v['price'],
'reference' => $v['ref']
];
$d[] = $prod;
}
}
return $d;
}
谢谢。
【问题讨论】:
-
只需将您当前在两者中所做的结合起来,然后删除
break语句(因为您仍然希望在此之后处理其余记录,用于您的第二部分功能。)由于函数只能返回 一个 数据项,因此您必须将 $is 和 $d 放入数组或对象中,然后返回。 -
谢谢,你能提供一些代码示例吗?
-
这很简单。请至少自己先尝试一下,而不是立即条件反射地要求示例。