# Koenig (14.10.2015 / 14:55)
на файлах?
Да, именно на файлах. Ты уже не помнишь? ) Ты же мне ещё советы давал по использованию file_get_contents() вместо file()
ДоХтор, не нашёл тему с твоей гостевой
Jahak, for вообще наверное во всех ЯП есть. это наверное от С пришло, так как там уже все считается. сколько отдать памяти под то или другое. потому и уже заранее известны итерации.
например while удобно использовать с функциями, пока функция не вернёт лож
ну если нужен итератор, лучше использовать for чем например
while (++$i < 50)
в for ещё есть прикольная штука, можно в аргументах использовать несколько значений. удобно например сразу делать инкримент нескольким значениям
# Koenig (14.10.2015 / 16:00)
в for ещё есть прикольная штука, можно в аргументах использовать несколько значений. удобно например сразу делать инкримент нескольким значениям
А ещё for удобно использовать для обратного прохода по массиву.
ДоХтор, ну тут уже дело каждого. можно и массив перевернуть. благо есть много хороших стандартных функций
ну и сразу лучше собирать правильно массив array_push например
# Koenig (14.10.2015 / 15:47)
ДоХтор, не нашёл тему с твоей гостевой
Вот от
этого поста и вниз
Это ссылка на первый файл, а вообще там три файла в трёх постах.
Вот как ни странно, оба варианта занимают равный объём памяти
вариант 1 (+/-)
<?php
$source = array(
0 => array('a' => 'a10',
'b' => 'a20',
'c' => 'cccc30',
'd' => 'a40',
'e' => 'a50'),
1 => array('a' => 'b10',
'b' => 'b20',
'c' => 'b30',
'd' => 'b40',
'e' => 'b50'),
2 => array('a' => 'c10',
'b' => 'c20',
'c' => 'cccc30',
'd' => 'c40',
'e' => 'c50')
);
function counting($arr = array()) {
$sum = 0;
foreach ($arr as $val) $sum++;
return $sum;
}
counting($source);
echo memory_get_usage();
вариант 2 (+/-)
<?php
$source = array(
0 => array('a' => 'a10',
'b' => 'a20',
'c' => 'cccc30',
'd' => 'a40',
'e' => 'a50'),
1 => array('a' => 'b10',
'b' => 'b20',
'c' => 'b30',
'd' => 'b40',
'e' => 'b50'),
2 => array('a' => 'c10',
'b' => 'c20',
'c' => 'cccc30',
'd' => 'c40',
'e' => 'c50')
);
function counting($arr = array()) {
$sum = 0;
while (each($arr)) $sum++;
return $sum;
}
counting($source);
echo memory_get_usage();