Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.04.2014, 11:18
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

php foreach исключение для соло
Всем привет.

if(isset($searchResult[1])){
                        foreach ($searchResult as $index => $result) {


В теле foreach 40 строчек кода условий, есть ли возможность избежать
вывода того же для $searchResult[0] где только одна запись?
А то дублирование получается.

Вывод в цикле так : $searchResult[$index]['pos'] а не $result['pos']

Благодарю
Ответить с цитированием
  #2 (permalink)  
Старый 16.04.2014, 11:28
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Нифига не понял что ты имеешь ввиду
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 16.04.2014, 11:37
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

не знаю, может ты это имел ввиду:
foreach (array_slice($searchResult, 1) as $index => $result) {
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 16.04.2014, 15:05
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Короче есть массив типа:

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(
                        'Поиск',
                        '',
                        ''
                    );
Ответить с цитированием
  #5 (permalink)  
Старый 16.04.2014, 15:06
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Количество условий пусть не пугает, бд вообще дастишь фантастишь )) а админку трогать нельзя как и урлы((
Ответить с цитированием
  #6 (permalink)  
Старый 16.04.2014, 15:15
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

оберни массив в массив если в нем нет индекса 1
примерно так:
if (isset($searchResult)) {
    $searchResult = isset($searchResult[1]) ? $searchResult : array($searchResult);

    foreach ($searchResult as $index => $result) {
    ...
    }
} else {
    $resultString .= " 1 ПОИСК НЕ ДАЛ РЕЗУЛЬТАТОВ !! !";
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 16.04.2014, 15:21
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Спасибо гражданин, товарищ, барин. Это просто но решение классное, благодарю!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
нужна программа для этого. Чем писать? javascript или php? spam-server Серверные языки и технологии 3 27.08.2009 00:52
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36