powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Доступ к массиву из цикла for
18 сообщений из 18, страница 1 из 1
(PHP) Доступ к массиву из цикла for
    #33152397
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
echo "нулевой([1][0]):" . $code_on_page[ 1 ][ 0 ] . "\n";
echo "первый([1][1]):" . $code_on_page[ 1 ][ 1 ] . "\n";
echo "второй([1][2]):" . $code_on_page[ 1 ][ 2 ] . "\n";
echo "третий([1][3]):" . $code_on_page[ 1 ][ 3 ] . "\n";
echo "четвёртый([1][4]):" . $code_on_page[ 1 ][ 4 ] . "\n";


// подсчёт числа элементов в массиве.
$count = count($code_on_page,COUNT_RECURSIVE);
$count_lin = count($code_on_page);
$count = $count - $count_lin;
$count = $count /  2 ;
echo "Счётчик = $count \n";

for ($i =  0 ; $i < $count; $i++)
{
$random = mt_rand( 100000000 ,time());
$code_on_page[ 0 ]['$i'] = $random;
echo "случайное число 1 $i $random \n";
echo "цикл" . $code_on_page[ 0 ]['$i'] . "\n";
}
Собственно важен последний цикл, в нём хрень какая-то. Вот выводит что:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
нулевой([ 1 ][ 0 ]): код в одну строчку - на случай, глюков  0  
первый([ 1 ][ 1 ]): код в одну строчку - на случай, глюков  1  
второй([ 1 ][ 2 ]): код в одну строчку - на случай, глюков  2 
третий([ 1 ][ 3 ]): код в одну строчку - на случай, глюков  3  
четвёртый([ 1 ][ 4 ]): код в одну строчку - на случай, глюков  4  
Счётчик =  5  
случайное число  1   0   672056563  
цикл672056563
случайное число  1   1   904200133  
цикл904200133
случайное число  1   2   212204786  
цикл212204786
случайное число  1   3   937751845  
цикл937751845
случайное число  1   4   1013180868  
цикл1013180868

Я так понимаю из цикла for массив невиден?
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152416
Comiljou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты можешь объяснить что это такое, зачем оно тебе нужно и кто тебя обязывал использовать for?
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152426
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй написать не одинарные скобки, а двойные. А еще лучше - вообще без скобок
Код: plaintext
1.
2.
3.
4.
// неправильно !!! получается элемент с индексом "$i" - строка
$code_on_page[ 0 ]['$i'] = $random; 
$code_on_page[ 0 ]["$i"] = $random; // вот так или еще лучше - 
$code_on_page[ 0 ][$i] = $random;
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152451
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Comiljou
Массив. Двумерный, если я правильно понимаю в терминологии.
В $code_on_page[0][1] сидит строка типа "
Код:
1.
код в одну строчку - на 
случай, глюков 1
"
А в $code_on_page[1][1] сидит строка типа "код в одну строчку - на случай,
глюков 1" (без
Код:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
 короче)
Я пытаюсь заменить значение $code_on_page[0][1] на случайное число.
Цикл нужен чтобы перебрать все элементы массива.

2 Ksnk
Замена скобок ничё не даёт. Пробовал одиночные, двойные, без них вообще.
Вот целиком код:
 [code=plaintext]echo "<pre>\n\n";

// Извлекаем из массива POST примечание к файлу
$text = $HTTP_POST_VARS['description'];
if (!get_magic_quotes_gpc()) {$text = addslashes("$text");}

preg_match_all("#\[code\](.*?)\\]#si",
    "$text",
    $code_on_page);
// в этом массиве сидят ненужные элементы - строка целиком
echo "нулевой([0][0]):" . $code_on_page[ 0 ][ 0 ] . "\n";
echo "первый([0][1]):" . $code_on_page[ 0 ][ 1 ] . "\n";
echo "второй([0][2]):" . $code_on_page[ 0 ][ 2 ] . "\n";
echo "третий([0][3]):" . $code_on_page[ 0 ][ 3 ] . "\n";
echo "четвёртый([0][4]):" . $code_on_page[ 0 ][ 4 ] . "\n";

echo "==============================================\n";

// в этом массиве сидит чистый код - то, что заключено между тэгами 
[code]


echo "нулевой([1][0]):" . $code_on_page[ 1 ][ 0 ] . "\n";
echo "первый([1][1]):" . $code_on_page[ 1 ][ 1 ] . "\n";
echo "второй([1][2]):" . $code_on_page[ 1 ][ 2 ] . "\n";
echo "третий([1][3]):" . $code_on_page[ 1 ][ 3 ] . "\n";
echo "четвёртый([1][4]):" . $code_on_page[ 1 ][ 4 ] . "\n";

// подсчёт числа элементов в массиве.
$count = count($code_on_page,COUNT_RECURSIVE);
$count_lin = count($code_on_page);
$count = $count - $count_lin;
$count = $count / 2 ;
echo "Счётчик = $count \n";

for ($i = 0 ; $i < $count; $i++)
{
$random = mt_rand( 100000000 ,time());
$code_on_page[ 0 ]["$i"] = $random;
echo "случайное число 1 $i $random \n";
echo "цикл" . $code_on_page[ 0 ]["$i"] . "\n";
}

echo "==============================================\n";
echo "нулевой([1][0]):" . $code_on_page[ 1 ][ 0 ] . "\n";
echo "первый([1][1]):" . $code_on_page[ 1 ][ 1 ] . "\n";
echo "второй([1][2]):" . $code_on_page[ 1 ][ 2 ] . "\n";
echo "третий([1][3]):" . $code_on_page[ 1 ][ 3 ] . "\n";
echo "четвёртый([1][4]):" . $code_on_page[ 1 ][ 4 ] . "\n";


echo "</pre>\n";


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152452
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> вот так или еще лучше - $code_on_page[0][$i] = $random;
Так не лучше, так правильно...
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152465
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо. С "" и без кавычек меняет ,но внутри цикла по echo выводить
нехочет почему-то....
Снаружи, после цикла показывает...
Следующий вопрос - почему? Что ему нетак внутри?


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152486
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что тут думать, проверяйте $i, $count.
З.Ы. Не называй переменные именами функций - дурацкая практика. Скорее всего $count = 0 || NULL.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152499
Comiljou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я тебя правильно понимаю(в чем я несколько сомневаюсь) и тебе просто надо перебрать code_on_page[0] и присвоить ему случайное число то это будет так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
foreach (array_keys($code_on_page[ 0 ])) 
{
$random = mt_rand( 100000000 ,time());
$code_on_page[ 0 ][$key] = $random;

echo "случайное число 1 $key $random \n";
echo "цикл" . $code_on_page[ 0 ][$key] . "\n";
// Предыдущая строчка вообще непонятно зачем нужна она выведет тебе твой $random
}
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152505
Comiljou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тьфуюю
foreach (array_keys($code_on_page[0]) as $key)
{
$random = mt_rand(100000000,time());
$code_on_page[0][$key] = $random;

echo "случайное число 1 $key $random \n";
echo "цикл" . $code_on_page[0][$key] . "\n";
// Предыдущая строчка вообще непонятно зачем нужна она выведет тебе твой $random
}
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152550
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Comiljou
Поняли правильно, и код (последний) работает.
А $random выводился для проверки, насколько они случайные....

2 4m@t!c
Этот код
Код: plaintext
1.
2.
3.
4.
5.
foreach (array_keys($code_on_page[ 0 ]) as $key)
{
$random = mt_rand( 100000000 ,time());
$code_on_page[ 0 ][$key] = $random;
echo "цикл" . $code_on_page[ 0 ][$key] . "\n";
}
Выводит тоже самое, что и в первом примере....
Так что $i и $count тут нипричём....
Почему же нельзя посмотреть содержимое элемента массива в цикле?


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152583
Comiljou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как это нельзя?
Код: plaintext
1.
2.
$code_on_page[ 0 ][$key] = $random; //Присваеваешь массиву случайное число
echo "цикл" . $code_on_page[ 0 ][$key] . "\n"; // Выводит его же. В этой строчке ты как раз просматриваешь содержимое массива $code_on_page[ 0 ][ 0 - 4 ]
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152597
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделайте
Код: plaintext
1.
2.
3.
4.
<PRE>
<?php
var_dump($code_on_page)
?>
<PRE>
и запостите результат.

----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152630
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё. Понял. (что и почему выводится). Оно всё правильно выводит....
Просто с массивами первый день колупаюсь.....


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152671
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы поняли, что у вас нет массива????
echo "нулевой([1][0]):" . $code_on_page[1][0] . "\n"; - это не инициализация массива.
если после этих строк сделать
Код: plaintext
1.
2.
3.
if(isset($code_on_page))
	echo "Array Exist";
else
	echo "Array NOT Exist";
То никакого масиива нет. Дело даже не в массиве, а в основах язык - переменная не инициализирована. И следовательно - глюк.. И следовательно $count = 0 и т.д. и т.п.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152742
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот из ит?
Код: plaintext
1.
2.
3.
4.
array( 2 ) {
  [ 0 ]=>
  array( 5 ) {
    [ 0 ]=>
    string( 55 ) "[code] код в одну строчку - на случай, глюков 0 
"
[ 1 ]=>
string( 55 ) "
Код:
 код в одну строчку - на случай, глюков 1 
"
[ 2 ]=>
string( 54 ) "
Код:
 код в одну строчку - на случай, глюков 2
"
[ 3 ]=>
string( 55 ) "
Код:
 код в одну строчку - на случай, глюков 3 
"
[ 4 ]=>
string( 55 ) "
Код:
 код в одну строчку - на случай, глюков 4 
"
}
[ 1 ]=>
array( 5 ) {
[ 0 ]=>
string( 42 ) " код в одну строчку - на случай, глюков 0 "
[ 1 ]=>
string( 42 ) " код в одну строчку - на случай, глюков 1 "
[ 2 ]=>
string( 41 ) " код в одну строчку - на случай, глюков 2"
[ 3 ]=>
string( 42 ) " код в одну строчку - на случай, глюков 3 "
[ 4 ]=>
string( 42 ) " код в одну строчку - на случай, глюков 4 "
}
}



Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152825
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sorry, работал с первым вариантом кода.
Тогда я не понимаю, в чем вопрос. Цикл вел себя вполне адекватно...
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152850
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4m@t!c> вот так или еще лучше - $code_on_page[0][$i] = $random;
Так не лучше, так правильно...

Кстати, для данного примера - совершенно без разницы... Главное чтобы присваивать и получать значения единообразно :)
...
Рейтинг: 0 / 0
(PHP) Доступ к массиву из цикла for
    #33152947
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это и есть самый что ни на есть первый вариант. Сразу после того как массив
получился от preg_match_all
Вопрос был втом, что я запутался что где в масиве находится..... :(


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Доступ к массиву из цикла for
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]