php foreach исключение для соло
Всем привет.
if(isset($searchResult[1])){ foreach ($searchResult as $index => $result) { В теле foreach 40 строчек кода условий, есть ли возможность избежать вывода того же для $searchResult[0] где только одна запись? А то дублирование получается. Вывод в цикле так : $searchResult[$index]['pos'] а не $result['pos'] Благодарю |
Нифига не понял что ты имеешь ввиду
|
не знаю, может ты это имел ввиду:
foreach (array_slice($searchResult, 1) as $index => $result) { } |
Короче есть массив типа:
array([0] = > array(), [1] => array() .... N) но он может и быть такой: array() Грубоговоря массив входящий в цикл может быть многомерным и не многомерным. И теперь есть вот такое чудо: if(isset($searchResult[1])){ foreach ($searchResult as $index => $result) { if ($result['pos'] == 'left' && $result['par'] == '0') { $resultString .= "<a href='/index.php/" . $result['url'] . "' class='searchResult'>" . $result['title'] . "</a><br/>"; } else if ($result['pos'] == 'left' && $result['par'] != '0') { // достаю родителя $parent = $M_Menu->getMenupointById($result['par']); if ($parent['par'] != 0) { $result['url'] = $parent['url_menupoint']; $parent = $M_Menu->getMenupointById($parent['par']); } $resultString .= "<a href='/index.php/". $parent['url_menupoint'] . "/" .$result['url'] . "' class='searchResult'>" . $result['title'] . "</a><br/>"; } else if ($result['pos'] == '' && $result['par'] == '0') { // пункты главного меню $resultString .= "<a href='/index.php/" . $result['url'] . "' class='searchResult'>" .$result['title'] . "</a><br/>"; } else if ($result['pos'] == 'bottom' && $result['par'] == '0') { // пункты главного меню $parent = $M_Menu->getMenupointById($result['id_menupoint']); $resultString .= "<a href='/index.php/". $parent['url_menupoint'] . "' class='searchResult'>" .$result['title'] . "</a><br/>"; } else if ($result['pos'] == '' && $result['par'] == '') { // записи на статью для новостей и докторов , значит $result['id_menupoint'] = '' if($result['id_menupoint'] == '') { $postData = $M_Menu->getPostByUrl($result['url']); } if($postData['id_menupoint'] == 3) { $resultString .= "<a href='/index.php/vrachi-izrailya/". $result['url'] . "'>" .$result['title'] . "</a><br/>"; } else if ($postData['id_menupoint'] == 311) { $resultString .= "<a href='/index.php/news/". $result['url'] . "' class='searchResult'>" .$result['title'] . "</a><br/>"; } } } } else if (isset($searchResult)) { if ($searchResult['pos'] == 'left' && $searchResult['par'] == '0') { $resultString .= "<a href='/index.php/" . $searchResult['url'] . "' class='searchResult'>" . $searchResult['title'] . "</a><br/>"; } else if ($searchResult['pos'] == 'left' && $searchResult['par'] != '0') { // достаю родителя $parent = $M_Menu->getMenupointById($searchResult['par']); if ($parent['par'] != 0) { $searchResult['url'] = $parent['url_menupoint']; $parent = $M_Menu->getMenupointById($parent['par']); } $resultString .= "<a href='/index.php/". $parent['url_menupoint'] . "/" .$searchResult['url'] . "' class='searchResult'>" . $searchResult['title'] . "</a><br/>"; } else if ($searchResult['pos'] == '' && $searchResult['par'] == '0') { // пункты главного меню $resultString .= "<a href='/index.php/" . $searchResult['url'] . "' class='searchResult'>" .$searchResult['title'] . "</a><br/>"; } else if ($searchResult['pos'] == 'bottom' && $searchResult['par'] == '0') { // пункты главного меню $parent = $M_Menu->getMenupointById($searchResult['id_menupoint']); $resultString .= "<a href='/index.php/". $parent['url_menupoint'] . "' class='searchResult'>" .$searchResult['title'] . "</a><br/>"; } else if ($searchResult['pos'] == '' && $searchResult['par'] == '') { // записи на статью для новостей и докторов , значит $searchResult['id_menupoint'] = '' if($searchResult['id_menupoint'] == '') { $postData = $M_Menu->getPostByUrl($searchResult['url']); } if($postData['id_menupoint'] == 3) { $resultString .= "<a href='/index.php/vrachi-izrailya/". $searchResult['url'] . "' class='searchResult'>" .$searchResult['title'] . "</a><br/>"; } else if ($postData['id_menupoint'] == 311) { $resultString .= "<a href='/index.php/news/". $searchResult['url'] . "' class='searchResult'>" .$searchResult['title'] . "</a><br/>"; } } else { $resultString .= " 2 ПОИСК НЕ ДАЛ РЕЗУЛЬТАТОВ !! !"; } } else { $resultString .= " 1 ПОИСК НЕ ДАЛ РЕЗУЛЬТАТОВ !! !"; } $this->setTKD( 'Поиск', '', '' ); |
Количество условий пусть не пугает, бд вообще дастишь фантастишь )) а админку трогать нельзя как и урлы((
|
оберни массив в массив если в нем нет индекса 1
примерно так: if (isset($searchResult)) { $searchResult = isset($searchResult[1]) ? $searchResult : array($searchResult); foreach ($searchResult as $index => $result) { ... } } else { $resultString .= " 1 ПОИСК НЕ ДАЛ РЕЗУЛЬТАТОВ !! !"; } |
Спасибо гражданин, товарищ, барин. Это просто но решение классное, благодарю!
|
Часовой пояс GMT +3, время: 00:56. |