Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Дополнительная проверка на выбор категории

Дополнительная проверка на выбор категории


     14.02.2014    Общие вопросы по PHP    1592

вопрос
Есть стандартная функция
function get_ID($cat_info, $category) {

    foreach ( $cat_info as $cats ) {        
         if( $cats['alt_name'] == $category ) return $cats['id'];
    }
    return false;
    
}


Сейчас выбирается ID по ALT_NAME.

Хочу реализовать дополнительную проверку на субкатегорию. Т.е. если категория находится в субкатегории, то выбирать по ALT_NAME только в этой субкатегории.

Предполагаю, что делать надо так же через foreach. Но как выбрать эти категории-субкатегории не понимаю.

Ответа пока нет


Комментарии пользователей (4)

D0Gmatist
225

794 | 281

D0Gmatist - 14 февраля 2014 13:09 - Местный

Что то типа этого .. додумать надо .. но занят
function get_ID($cat_info, $category, $subLevel = false) {

    $sborPeremennoy = "";
    foreach ( $cat_info as $cats ) {        
        if($cats['alt_name'] == $category) {
            $sborPeremennoy .= $cats['id'];
        } else {
            $sborPeremennoy .= get_ID( $cats, true );
        }
    }
    if ( $subLevel ) {
        return "<div>" . $sborPeremennoy . "<div>";
    } else {
        return $sborPeremennoy;
    }
}

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

Goel
6

Goel - 14 февраля 2014 14:12 - Юзер

$cats['alt_name'] == $category мне нужно проверять только находясь уже в нужной категории.

Дело в том, что я сделал название категории не уникальным. т.е. у меня есть tovar1/opisanie и tovar2/opisanie и т.к. идёт проверка по alt_name то меня всегда откидывает на tovar1.

Goel
6

Goel - 14 февраля 2014 14:32 - Юзер

Куда-то пропала кнопка "Править" =(

Или думал сделать как-то так:
function get_ID($cat_info, $category) {

    if ($cat_info['parentid'] != 0) { /*Если parentid не = 0, значит это подкатегория */
    
        if ($cat_info['parentid'] == get_sub_cats ( $category_id )) $cats = get_sub_cats ( $category_id );
    /*Если parentid_категории ==  id_подкатегории, то ищем совпадение по ALT_NAME */
        {foreach ( $cat_info as $cats ) {        
             if( $cats['alt_name'] == $category ) return $cats['id'];
        }
        return false;}    
     }
    else {

        foreach ( $cat_info as $cats ) {        
             if( $cats['alt_name'] == $category ) return $cats['id'];
        }
        return false;}
}

Goel
6

Goel - 14 февраля 2014 14:48 - Юзер

Хотя в этом случае так же выдаст первый попавшийся id т.е. tovar1/opisanie

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы