Задачки по PHP

8.08K
.
# Koenig (14.10.2015 / 14:55)
на файлах?
Да, именно на файлах. Ты уже не помнишь? ) Ты же мне ещё советы давал по использованию file_get_contents() вместо file()
.
(\/)____o_O____(\/)

ДоХтор, не нашёл тему с твоей гостевой

.
(\/)____o_O____(\/)

Jahak, for вообще наверное во всех ЯП есть. это наверное от С пришло, так как там уже все считается. сколько отдать памяти под то или другое. потому и уже заранее известны итерации.
например while удобно использовать с функциями, пока функция не вернёт лож

.
(\/)____o_O____(\/)

ну если нужен итератор, лучше использовать for чем например
while (++$i < 50)

.
(\/)____o_O____(\/)

в for ещё есть прикольная штука, можно в аргументах использовать несколько значений. удобно например сразу делать инкримент нескольким значениям

.
# Koenig (14.10.2015 / 16:00)
в for ещё есть прикольная штука, можно в аргументах использовать несколько значений. удобно например сразу делать инкримент нескольким значениям
А ещё for удобно использовать для обратного прохода по массиву.
.
Koenig
(\/)____o_O____(\/)

ДоХтор, ну тут уже дело каждого. можно и массив перевернуть. благо есть много хороших стандартных функций
ну и сразу лучше собирать правильно массив 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();
.
(\/)____o_O____(\/)
http://php.net/manual/ru/class ... r.php тут вообще можно без цикла сделать
Всего: 270