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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Динамически проверить глубину массива

Сообщения:  [1-10]   [11-19] 

 
 автор: deimand   (21.08.2010 в 16:40)   письмо автору
 
   для: Trianon   (19.08.2010 в 19:10)
 

спасибо

  Ответить  
 
 автор: nikita2206   (20.08.2010 в 13:50)   письмо автору
 
   для: sim5   (20.08.2010 в 13:46)
 

Я и говорю - расхолаживает. Большинства глупых вопросов на этом форуме не было бы, если бы тут была строгая типизация, хотя я против этого.

  Ответить  
 
 автор: sim5   (20.08.2010 в 13:46)   письмо автору
 
   для: nikita2206   (20.08.2010 в 13:40)
 

Он много чего позволяет, чего позволять не стоило бы, а привычка пагубная хуже врага злейшего.

  Ответить  
 
 автор: nikita2206   (20.08.2010 в 13:40)   письмо автору
 
   для: sim5   (20.08.2010 в 11:24)
 

похапе ведь позволяет это делать. вобще этот язык страшно расхолаживает.

  Ответить  
 
 автор: sim5   (20.08.2010 в 11:24)   письмо автору
 
   для: deimand   (20.08.2010 в 11:19)
 

Зачем же мне проверять, это вам следует проверить, да и echo не проверяет массив. У вас в массивах никчемная запятая после поледних элементов массива - прывкните так делать, напоритесь на неприятности.

  Ответить  
 
 автор: deimand   (20.08.2010 в 11:19)   письмо автору
 
   для: sim5   (20.08.2010 в 07:09)
 

Как это не может? echo не зря же написано, проверьте.

  Ответить  
 
 автор: sim5   (20.08.2010 в 07:09)   письмо автору
 
   для: deimand   (20.08.2010 в 00:04)
 

PS. Массив описанный вами сущестовать не может, ибо в нем ошибки.

  Ответить  
 
 автор: sim5   (20.08.2010 в 05:38)   письмо автору
 
   для: deimand   (20.08.2010 в 00:04)
 

Ну а я о чем? Вы задаете вопрос о глубине вложенности, упоминая значение глубины, таким вычурным способом, что понять вас можно только после приема грамм 500. А вам всего лишь нужно узнать значение конкретного элемента в массиве. Вот и пойми вас после этого, чего вы хотите.
Делается это просто - передавайте в параметре значения описывающее этот элемент массива - [2][4], а не 2,4, или если 3,3,1,1, то так, чтобы не было неоднозначностей, коли вы хотите в последствии преварать это в [3][3][1][1] (вот только зачем). А уж проверить наличие в массиве указанного индекса, это плевое дело, и не стоит так заморачиваться, как это вы делаете.

  Ответить  
 
 автор: deimand   (20.08.2010 в 00:04)   письмо автору
 
   для: sim5   (19.08.2010 в 18:22)
 

Буду на пальцах показывать
к примеру есть массив

<?php 
 $core 
=
 array
 (
   
=> 1,
   
=> 2,
   
=> array
   (
     
=> array
     (
       
=> 3,
       
=> 4,
       
=> 5,
       
=> 6,
     ),
     
=> array
     (
       
=> 7,
       
=> 8,
     ),
     
=> 9,
     
=> 10,
     
=> 11,
     
=> 12,
   ),
   
=> array
   (
     
=> 13,
     
=> 14,
     
=> array
     (
       
=> 15,
     ),
     
=> array
     (
       
=> array
       (
         
=> 16,
         
=> 17,
       ),
       
=> array
       (
         
=> 18,
         
=> 19,
       ),
     ),
   ),
   
=> array
   (
     
=> 19,
     
=> 20,
     
=> 21,
   ),
   
=> 22,
   
=> 23,
 );


вот под него нужно такую ф-ию изобрести, чтобы при ссылке

?param=2,4 на страницу выводилось 11
?param=3,3,0,1 на страницу выводилось 17
?param=3,3,1,1 на страницу выводилось 19
?param=3,3,1 на страницу ничего не выводилось, т.к. массив, а не значение
?param=5,2 на страницу ничего не выводилось, т.к. не существует элемента

echo $core[2][4]; // да - 11
echo $core[3][3][0][1]; // да - 17
echo $core[3][3][1][1]; // да - 19
echo $core[3][3][1]; // нет - array
echo $core[5][2]; // нет - !isset

  Ответить  
 
 автор: Trianon   (19.08.2010 в 19:10)   письмо автору
 
   для: deimand   (19.08.2010 в 15:37)
 

<?php
function issetValueArr($arr$core)
{
    
    foreach(
$arr as $term)
    {
        if(!
is_array($core))
            return 
null;
        
$core= @$core['term'];
        if(
$core === null)
            return 
null;
    }
    return 
$core;
}

  Ответить  

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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