Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Определить имеется ли в массиве элемент?
 
 автор: Terri   (27.05.2006 в 17:03)   письмо автору
 
 

Имею такую структуру разделов



$tree = array (
 array(
  'id' => 'akustika',
  'parent' => '0',
  'name' => 'Акустика',
 ),
 array(
  'id' => 'aktivnaja_akustika',
  'parent' => 'akustika',
  'name' => 'Активная акустика',
 ),
 array(
  'id' => 'avto_akustika',
  'parent' => 'akustika',
  'name' => 'Авто акустика',
 ),

 ...

 array(
  'id' => 'obzor_akustika',
  'parent' => '0',
  'name' => 'Обзор акустика',
 ),

 ...
);


где id - айди раздела, parent - родитель, name - названия раздела
Обычная стандартная структура, и мне нужно какимто образом проверить имеется ли такой айди в данном разделе или нет
Запускаю страницу таким образом site.ru/index.php?cat=akustika
Так вот, как проверить имеется ли "akustika" в данном массиве, если не имеется то перенаправить пользователя на
главную страницу сайта?

Я вот сделал


function is_category($tree,$catid){
 foreach($tree as $k => $v){
  if($v['id'] == $catid){
   return $v['id'];
  }else{
   return 0;
  }
 }
}


if(is_category($tree,$_GET['cat']) == 0){
echo 'тут перенапровляем на главную страницу';
}




когда раздел имеется в данном массиве, то всё нормально, а вот когда нет, почемуто выдаёт последний элемент массива

   
 
 автор: Anwor   (27.05.2006 в 22:17)   письмо автору
 
   для: Terri   (27.05.2006 в 17:03)
 

Ну, для этого, насколько мне известно, имеется специальная функция in_Array, которая как раз-таки и проверяет наличие в массиве какого-либо элемента...
Синтаксис вот:
in_array(массив, значение)
Естественно, приаттачиваешь туда потом IF и дальше делаешь что нужно в зависимости от результата.

   
 
 автор: Terri   (27.05.2006 в 23:10)   письмо автору
 
   для: Anwor   (27.05.2006 в 22:17)
 

я так пробывал, но почемуто не получается
вот код то что делал

if(!@in_array($tree,$_GET['cat'])){
echo 'нет раздела';
}

   
 
 автор: Anwor   (27.05.2006 в 23:20)   письмо автору
 
   для: Terri   (27.05.2006 в 23:10)
 

А если без собаки?
Потому что у меня всегда без собаки работало...

   
 
 автор: Terri   (27.05.2006 в 23:32)   письмо автору
 
   для: Anwor   (27.05.2006 в 23:20)
 

там я ошибся с расположениями параметров, знак @ я убрал но всёравно не работает, при любом случии выводит данное сообщение

if(in_array($_GET['cat'],$tree)){
echo 'нет раздела';
}

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования