循环遍历两个不同的数组以检查值是否存在



这个数组由3个对象数组组成它看起来像

$invoice
$invoice->foo
$invoice->foo->bars
$invoice->bars
$invoice->foobars

我有所有的foo栏显示在一个表中,如

<?php foreach($invoice->foo->bars as $bar) { ?>
<tr>
    <td>
        <?php echo $bar->some_field;
    </td>
    <td>
        <?php echo $bar->another_field;
    </td>
</tr>

我有一个下拉按钮看起来像

 <ul>
    <li><a href="some_url/edit/$bar->id">edit</a></li>
    <li><a href="some_url/delete/$bar->id">Delete</a></li>
    <li><a href="some_url/add_foobar/$bar->id">Add foobar</a></li>
</ul>

我是否正在检查栏是否有foobar

for ($i=0; $i < count($invoice->foobars); $i++) { 
    $foobar_bars[] = $invoice->foobars[$i]->foobar_bar_id;
}

和$invoice->foo->bars循环中,我检查以显示像

这样的按钮
<ul>
    <li><a href="some_url/edit/$bar->id">edit</a></li>
    <li><a href="some_url/delete/$bar->id">Delete</a></li>
<?php if(!in_array($bar->dd_id, $companion_bars)){ ?>
    <li><a href="some_url/add_foobar/$bar->id">Add Foobar</a></li>
<?php } ?>
</ul>

我想知道这是否是最有效的方法来做到这一点,或者是他们更好的方法来检查栏是否有一个foobar

我认为最有效的方法是有一个方法来告诉你是否存在这种情况:

if ($bar->hasCompanionBar()) {
    // the condition is TRUE
}

这样你就可以把最有效的决定推迟到以后。这将允许您在代码库的生命周期内创建最有效的代码。

相关内容

  • 没有找到相关文章

最新更新