在将值与数组键进行比较时

时间:2013-12-23 10:14:09

标签: php optimization

好吧,我有一个看起来像的解决方案:

<?php foreach($overdue_tasks as $task) { ?>
    <li>
    <a href="<?php echo $task_url.'/'.$task->id; ?>" title="Przejdź do zadania">
    <i class="icon-arrow-right"></i> Spóźnione zadanie ID: <?php echo $task->id; ?>
    <?php
    foreach($overdue_days as $id => $days)
    {
        if($task->id == $id)
        {
            echo "dni spóźnienia: ".Arr::get($overdue_days, $task->id);
        }
    }
    ?>
    </a>
    </li>
<?php } ?>

但我有一个问题,我可以用某种if替换第二个while以获得更好的优化吗?我需要将第一个循环的每个id与第二个数组中的键和第二个数组的打印值进行比较。

2 个答案:

答案 0 :(得分:1)

foreach($overdue_days as $id => $days)
{
  if($task->id == $id)
  {
    echo "dni spóźnienia: ".Arr::get($overdue_days, $task->id);
  }
}

可以替换为:

if(key_exists($task->id, $overdue_days)) {
   echo "dni spóźnienia: ".Arr::get($overdue_days, $task->id); // == $overdue_days[$task->id]
}

答案 1 :(得分:1)

好多了

if (array_key_exists($task->id, $overdue_days)) {
    echo "dni spóźnienia: ".Arr::get($overdue_days, $task->id);
}