$mas[$i][$j]
из этого кода:
<h1>
<pre>
<?php
$mas = array(
array ('privet','poka','proschay'),
array('fakel','antonio','dar')
);
for($i=0; $i<count($mas); $i++){
echo $i.' ';
for($j=0; $j<count($mas[$i]); $j++){
echo $mas[$i][$j].' ';
}
echo "\n";
}
?>
Вот это означает $mas[$i][$j].' ';
вывести значение индекса за первой итерацией, второй и третей или это означает вывести одновременно индекс и значение?
Спустя 3 минуты, 16 секунд (3.12.2010 - 01:37) waldicom написал(а):
это означает вывести значение, которое лежит по адресу i,j
Спустя 16 минут, 48 секунд (3.12.2010 - 01:53) inpost написал(а):
i = 5
j = 6
echo $mas[5][6];
j = 6
echo $mas[5][6];
Спустя 15 секунд (3.12.2010 - 01:54) Golovastik написал(а):
Ещё момент, вот это:
Это означает с нуля по количество элементов первого индекса массива,
с нуля по количество элементов 2 индекса массива и т.д,
так имеется ввиду?
for($j=0; $j<count($mas[$i]); $j++){
Это означает с нуля по количество элементов первого индекса массива,
с нуля по количество элементов 2 индекса массива и т.д,
так имеется ввиду?
Спустя 6 минут, 20 секунд (3.12.2010 - 02:00) Slays написал(а):
массив может быть сколь угодно вложенным, для получения значения обращение всегда идет по ключу.
например
$ar['3']['ru'] = три
и тд, массив 3 в себе мог еще содержать массив, например, eng пусть будет массивом, тогда для доступа к его элементам использовалось бы
$ar['3']['eng']['hz']
например
$ar = array(
'1' => 'один',
'2' => 'два',
'3' => array(
'ru' = >'три',
'eng' => 'three'
),
'4'=> 'четыре'
);
$ar['3']['eng'] = three
$ar['3']['ru'] = три
и тд, массив 3 в себе мог еще содержать массив, например, eng пусть будет массивом, тогда для доступа к его элементам использовалось бы
$ar['3']['eng']['hz']
Спустя 1 минута, 56 секунд (3.12.2010 - 02:02) Slays написал(а):
Golovastik
count определяет количество элементов массива
$ar = array('1','2','3');
count($ar) = 3
count определяет количество элементов массива
$ar = array('1','2','3');
count($ar) = 3
Спустя 10 минут, 59 секунд (3.12.2010 - 02:13) Slays написал(а):
целиком это можно описать так
<?php
// двумерный массив
$mas = array(
array ('privet','poka','proschay'),
array('fakel','antonio','dar')
);
// первый фор определяет count($mas) = 2, подставляя при первом заходе
// for($j=0; $j<count($mas[1]); $j++) - первый массив, count = 3
// при втором
// for($j=0; $j<count($mas[2]); $j++) - второй, count = 3
for($i=0; $i<count($mas); $i++){
echo $i.' ';
for($j=0; $j<count($mas[$i]); $j++){
echo $mas[$i][$j].' '; // достает и выводит значение по подставленным индексам
// $mas[0][0] - первый элеемнт первого элемента, тобишь 'privet'
// $mas[0][1] - второй элемент первого элемента, тобишь 'poka'
// и тд, при втором обходе фор идет тоже самое, только по второму элементу
// $mas[1][0], $mas[1][1] и тд
}
echo "\n";
}
?>
Спустя 20 минут (3.12.2010 - 02:33) Golovastik написал(а):
$j<count($mas[$i]);
Почему за внутреней итерацией нужно писать
$mas[$i]); а не просто $mas
Почему за внутреней итерацией нужно писать
$mas[$i]); а не просто $mas
Спустя 6 часов, 39 минут, 50 секунд (3.12.2010 - 09:13) linker написал(а):
Потому что $mas[i] - это текущий элемент массива $mas, который тоже является массивом. Т.е. $mas[i][j] - это текущий элемент массива $mas[$i], который в свою очередь также является текущим элементом массива $mas. Посмотри на структуру папок у себя на жестком диске, каждая папка есть массив дочерних элементов, которые также могут содержать свои дочерние элементы. Когда ты хочешь обратиться к какому-либо файлу, ты пишешь путь c:/folder/subfolder/file.txt, так и здесь $mas[$i][$j]. Где
$mas = c:
$mas[$i] = folder
$mas[$i][$j] = subfolder
а значение $mas[$i][$j] = file.txt
Спустя 7 часов, 39 минут, 35 секунд (3.12.2010 - 16:52) Golovastik написал(а):
Вот это $i<count($mas); означает пройтись с нуля по количество элементов в массиве с нуля до 1, 2 раза, так как элементов в массиве 2. А это $j<count($mas[$i]); это означает пройтись с нуля по количество элементов каждого первого индекса массива под названием $mas?
Спустя 45 минут, 44 секунды (3.12.2010 - 17:38) linker написал(а):
Это
$i<count($mas)говорит, что выполнять цикл пока $i меньше общего количества элементов в массиве $mas. А это
$j<count($mas[$i])говорит, что выполнять цикл пока $j меньше общего количества элементов в массиве $mas[$i]
Спустя 45 минут, 47 секунд (3.12.2010 - 18:24) Golovastik написал(а):
Массив $mas[$i] $i принимает значения 0 и 1, значит внутренний цикл будет проходится по массивам $mas[0] и $mas[1] ?
Спустя 1 день, 18 часов, 43 минуты, 8 секунд (5.12.2010 - 13:07) linker написал(а):
Да.