[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Толкование смысла вывода $mas[$i][$j]
Golovastik
При выводе этого двумерного массива.

$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];

Спустя 15 секунд (3.12.2010 - 01:54) Golovastik написал(а):
Ещё момент, вот это:

for($j=0; $j<count($mas[$i]); $j++){


Это означает с нуля по количество элементов первого индекса массива,
с нуля по количество элементов 2 индекса массива и т.д,
так имеется ввиду?

Спустя 6 минут, 20 секунд (3.12.2010 - 02:00) Slays написал(а):
массив может быть сколь угодно вложенным, для получения значения обращение всегда идет по ключу.

например

$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

Спустя 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

Спустя 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 написал(а):
Да.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.