Вопрос

Я пробовал разные решения для этой проблемы без успеха.Проблема в том, что это:

У меня есть некоторые результаты, образующиеся zend_search_lucene, которые дают скажем, что 3 результаты с идентификатором: 2, 3, 4

Тогда у меня есть некоторые записи из неравновешенного запроса, сделанного с доктриной, который дает мне два записи с идентификатором идентификатора: 2 и 3.

Результаты поиска Лучна должны показывать на странице всего 3 записей.Из них мне нужно проверить, будет ли идентификатор для другого идентификатора запроса DOCRINE, то есть если есть совпадение IE: 2= 2, 3= 3 показывают что-то, если нет, то есть: 2= 3 показать другую вещь. .

пытается сделать это с foreach дважды и Ant End Stement, но я получаю двойные результаты на странице:

foreach($this->results as $r):    //  records form search Lucene ie 2, 3, 4

    foreach($this->records2 as $r2){     // records from another table (query) 2 and 3

          if(($r2['id']) == ($r->id)) { 
                                      // do something

                            } else {
                              // dosothing else

    }
.

... etc.

Я понимаю, почему записи повторяются дважды, но я не знаю, какой правильный способ получить правильный результат.Может кто-нибудь, пожалуйста, помогите? Мои извинения, если есть какая-то глупость, которую я делаю.:)

Это было полезно?

Решение

foreach(... $r) {
  $found = false;
  foreach(... $r2) {
    if (... == ...) {
      $found = true; break;
    }
  }
  if ($found) {
    // something
  } else {
    // something else
  }
}
.

Другие советы

Вы можете устранить внутренний генеракодицетагCode, если массив в foreach является карта, подобная это:

array(2 => array('id' => 2));
.

Тогда внутри первого foreach:

if (isset($this->records2[$r->id])) {
    // do something
} else {
    // do something else
}
.

Таким образом, $this->records2 и // do something else выполняются максимум одновременно на петлю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top