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, время: 05:10. |