Двумерный массив
Не получается вывести двумерный массив. Читал вроде в учебнике что циклы могут не обязательно одинаковой длины строки и стобцы быть, вот попробовал написать код, чего-то не срабатывает.
<?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, время: 15:39. |