我想知道是否有任何例程的快捷方式喜欢这个:
foreach ($formFields as $field) {
if(intval($field->getId()) === $number) {
$label = $field->getLabel();
$label = (strrchr($label, '*') === '*') ? substr($label, 0 , strlen($label) - 1) : $label;
$dataFound = false;
/** @var ParticipationData $data */
foreach ($participationData as $data) {
if($data->getFormField()->getId() == $field->getId()) {
$text = str_replace($match, sprintf("%s<br/>%s", $label, $data->getValueData()), $text);
$dataFound = true;
break;
}
}
if(!$dataFound) {
$text = str_replace($match, sprintf("%s<br/>empty", $label), $text);
}
break;
}
}
所以基本的想法是,如果data
对应field
,我想检查第二个foreach循环,如果是,则替换一些文本。
在循环之后,我通过dataFound
检查if条件是否为真,如果不是,我会做一些不同的事情。我喜欢做这样的事情(第二个foreach循环):
foreach ($participationData as $data; $data->getFormField()->getId() == $field->getId()) {
$text = str_replace($match, sprintf("%s<br/>%s", $label, $data->getValueData()), $text);
break;
}
else {
$text = str_replace($match, sprintf("%s<br/>empty", $label), $text);
}
所以就像带有条件的foreach循环一样。 PHP或JavaScript中有这样的东西吗?或者我怎样才能以其他方式快捷地完成这样的例程呢?因为我经常绊倒这些东西。
任何帮助表示感谢。