Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: array

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как изменить элемент массива
sup
Отправлено: 09 Июля, 2013 - 13:57:49
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Как изменить элемент массива, находящегося в другом массиве?
PHP:
скопировать код в буфер обмена
  1. $test_array = [];
  2. array_push($test_array ,10);
  3. $test_depth[0] = $test_array[0];
  4. $test_array[0] = $test_array[0] - 1;
  5. MainDebug::debug($test_depth[0]);//10, а хочется 9.
 
 Top
VenZell
Отправлено: 09 Июля, 2013 - 14:08:02
Post Id


Частый гость


Покинул форум
Сообщений всего: 237
Дата рег-ции: Июнь 2013  


Помог: 12 раз(а)




PHP:
скопировать код в буфер обмена
  1. $test_array = [];
  2. array_push($test_array ,10);
  3. $test_array[0] = $test_array[0] - 1;
  4. $test_depth[0] = $test_array[0];
  5. MainDebug::debug($test_depth[0]);//раз хочется, пусть будет 9.

(Отредактировано автором: 09 Июля, 2013 - 14:11:32)

 
 Top
LIME
Отправлено: 09 Июля, 2013 - 15:25:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




PHP:
скопировать код в буфер обмена
  1. $test_array = [];
  2. array_push($test_array ,10);
  3. $test_depth[0] = --$test_array[0];
  4. MainDebug::debug($test_depth[0]);//раз хочется, пусть будет 9.
 
 Top
sup
Отправлено: 09 Июля, 2013 - 21:28:06
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Спасибо Вам! я немного разобрался. Но Ваши примеры немного для меня не подходят.
Вы сначала изменяли или уже добавляли измененный, а мне хотелось, в массиве менять другой массив. Но целый день я пытаюсь понять вот что...
У меня массив с 13 элементами, я перебираю их в цикле for, в общем ниже..
CODE (htmlphp):
скопировать код в буфер обмена
  1.     private static function sort_dir( $path )
  2.     {
  3.         $files_array = glob( $path.'/*' );
  4.         $all_arrays = array();
  5.         $this_num = 0;
  6.         $all_arrays[$this_num] = $files_array;
  7.         while( $all_arrays[$this_num] > - 1 )
  8.         {
  9.             if( is_dir( $all_arrays[$this_num][0] ) )
  10.             {
  11.                 array_shift( $all_arrays[$this_num] );
  12.             }
  13.             else
  14.             if( is_file( $all_arrays[$this_num][0]  ) )
  15.             {
  16.                 array_shift( $all_arrays[$this_num] );
  17.             }
  18.             else
  19.             {
  20.                 unset($all_arrays);
  21.             }
  22.         }
  23.         MainDebug::debug($all_arrays == null);
  24.     }

Хочу просто получить xml со всеми директориями на сервере. Сложности вроде и нет, но есть результат - 13 обьектов ( даже не директорий, я пока первый уровень только начал пробовать ) секунд пятнадцать выполняются. Я могу придумать очень много причин, но по настоящему не уверен не в одной. и хочется спросить Вас как опытных - это какие то проверки код так тормозят или это все дело в том, что ход выполнения в браузере происходит?)

(Отредактировано автором: 09 Июля, 2013 - 21:29:49)

 
 Top
LIME
Отправлено: 09 Июля, 2013 - 21:54:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




 
 Top
sup
Отправлено: 09 Июля, 2013 - 22:05:24
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Спасибо! Это я уже читал)
 
 Top
sup
Отправлено: 10 Июля, 2013 - 00:11:07
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




При попытке пройтись по всем разделам в цикле, я упираюсь в какой то странный файл $RECYCLE.BIN. Это какой то системный, невидимый файл или что?
Файлы у меня пока не на сервере...точнее они на сервере, но почему то программа отказывается считывать с сервера, а читает с диска. Но откуда в папке с сайтом корзина Не понял

(Отредактировано автором: 10 Июля, 2013 - 00:19:52)

 
 Top
sup
Отправлено: 10 Июля, 2013 - 14:22:57
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Фух, я разобрался) Не хватило ума лишний раз проверить пути.
 
 Top
sup
Отправлено: 11 Июля, 2013 - 16:29:55
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Как правильно нужно создавать массив, чтобы его потом использовать в
PHP:
скопировать код в буфер обмена
  1. foreach($arr as $key=>$value){};

Во код который я нашёл на этом форуме ( за что автору Большое Спасибо )
который собирает массив.
PHP:
скопировать код в буфер обмена
  1.     private function scanSistem( $path_dir )
  2.     {
  3.         $all_path = array();
  4.         $array = array();
  5.         $dir = new RecursiveDirectoryIterator($path_dir);
  6.         $name_dir = '';
  7.         foreach(new RecursiveIteratorIterator($dir) as $val)
  8.         {
  9.             $info = pathinfo($val);
  10.             if(is_file($val))
  11.             {
  12.                $all_path[][$name_dir] =  array(
  13.                    name=>$info[filename],
  14.                    format => $info[extension]);
  15.             }
  16.             if(is_dir($val))
  17.             {
  18.                 if($all_path[count($all_path)-1]['nameDir'] !== $info[dirname])
  19.                 {
  20.                     $name_dir = $info[dirname];
  21.                 }
  22.             }
  23.         }
  24.     }

вот кусок кода создающий xml
PHP:
скопировать код в буфер обмена
  1. foreach( $data as $key => $value ) {
  2.  
  3. // no numeric keys in our xml please!
  4. $numeric = false;
  5. if ( is_numeric( $key ) ) {
  6. $numeric = 1;
  7. $key = $rootNodeName;
  8. }

как понимаю я, чтобы у меня получился многомерный xml мне нужно добавлять созданные элементы в rootNodeName, то есть получается, что свойство $rootNodeName должно ровняться $key и тогда как только сменится ключ то и появится новый родитель для элементов. Но как тогда собирать массив, чтобы ключ был именем директории?
вот так не получается - и наверное не должно, так как мы перезаписываем один и тот же элемент..

(Добавление)
Вот наглядный пример того - что не зная броду не суйся в воду.
И первый и второй код - готовые решения. Только заточены они под нужды авторов.
Можно искать сто лет другие варианты, но проще какой то код сделать самому. Тем более, что в дальнейшем это только будет сопутствовать. Но я очень буду рад если вы мне обьясните про массив, это сократит время.
 
 Top
AlexAnder
Отправлено: 11 Июля, 2013 - 16:37:28
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Цитата:
как тогда собирать массив, чтобы ключ был именем директории

как насчёт изучения основ?


Цитата:
Как инициализировать массив, чтобы его потом использовать

(Отредактировано автором: 11 Июля, 2013 - 16:38:48)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
sup
Отправлено: 11 Июля, 2013 - 16:50:50
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Цитата:
как насчёт изучения основ?

если вы только по этой строчке..то я знаю как писать ассоциативный массив ( мне так кажется ) и я понимаю что эта конструкция создает вложенный массив, который ещё вроде многоуровневый называется. Но мне это не помогает.

(Отредактировано автором: 11 Июля, 2013 - 16:54:30)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB