foreach-if-else常规的快捷方式?

时间:2015-09-15 12:22:19

标签: php if-statement foreach

我想知道是否有任何例程的快捷方式喜欢这个:

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中有这样的东西吗?或者我怎样才能以其他方式快捷地完成这样的例程呢?因为我经常绊倒这些东西。

任何帮助表示感谢。

0 个答案:

没有答案