Двумерный массив
Не получается вывести двумерный массив. Читал вроде в учебнике что циклы могут не обязательно одинаковой длины строки и стобцы быть, вот попробовал написать код, чего-то не срабатывает.
<?php
$trans = array(
0=> array("Мама","Папа","Дядя",),
1 => -3,
2 => 105,
3=>500,
4=>'Andrey',
8=> array("Вася","Петя","Коля")
);
foreach($trans as $x)
foreach($x as $y)
echo $x.' '.$y.' ';
?>
|
Вот так заработало.
Код:
<?phpКод:
for ($i = 0; $i < count($trans); $i++) |
Ух-ты, вот так получилось.
Код:
<?php |
Вот так правильнее, проверил секундомером с учетом если 10 млн номер индекса последний, код запускается чере 14,16 сек. в браузере.
<?php
$trans = array(
0 => array("Мама","Папа","Дядя",),
1 => -3,
2 => 105,
3 => 500,
4 => 'Andrey',
10000000 => array("Вася","Петя","Коля")
);
end($trans);
$max = key($trans);
for ($i = 0; $i <= $max; $i++)
{
if (!array_key_exists($i, $trans)) continue;
if (is_array($trans[$i]))
for ($j = 0; $j < count($trans[$i]); $j++)
echo $trans[$i][$j] . ' ';
else
echo $trans[$i] . ' ';
}
?>
|
а чем foreach не угодил?
foreach( $array as $key => $value ) {
}
|
Цитата:
|
Да, на телефоне нокиа 1200 есть секундомер, им проверил.
|
Цитата:
Есть более вменяемые способы измерения времени выполнения скриптов: 1)время выполнения скрипта на PHP <?php $start_time = microtime(true); //измеряемый код var_dump(round(microtime(true) - $start_time, 4)); 2)время загрузки страницы - можно посмотреть в консоли разработчика во вкладке "сеть". Сейчас консоль разработчика есть в каждом более-менее популярном десктопном браузере. время загрузки основного файла складывается из мремени выоплнения скрипта, и времени загрузки его по сети Последнее, в случае тестировании на локальной машине - мало, и иногда им можно пренебречь 3) время выполнения JS-скрипта(способ в консоли разработчика)
console.time('timer1');
//измеряемый код
console.timeEnd('timer1');
4)время выполнения JS-скрипта(нативный, без консоли) var start = (new Date).getTime(); //измеряемый код alert((new Date).getTime() - start); |
| Часовой пояс GMT +3, время: 10:37. |