1) Вы перевернули понятие 1 строки о которой я говарил!
2) Код в котором отсутствует \n как минимум плохой тон
3) Я говарю о функциональной строке которая выполняет задачу.
4) Цыкл по правилам оформления как миниму 2 строки... Но с этим я не спорю.. Но все равно цыклы это 2 строки 1 вы инициализируете условия 2 то что делается по этому условию.. как то так )) я не мастер пояснять но думаю суть ясна...
На счет нечитаемости:
Ваш код я даже не понял )) пришлось лезть в чхмку за помощью...
each - не пользовался и не слышал...
Но все равно
1) Ваш код не в 1 строку
2) Ваш код так же сложно читаем как и мой хотя если разобраться... explode and implode мало каму не известны... по вашему нечитаемость в том что много раз написана переменная префикса !?
3) С вашим кодом чудеса...
Вот не поленил протестил на время исполнения в счет бралась только часть функциональная тоесть.
1) Инициализация масива из 24 000 эллементов не бралась в расчет.
2) Инициализация функций не бралась в расчет.
Метод тестирования а вернее используемый код.
PHP:
<?PHP
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
for ($i=0; $i<10; $i++)
{
$time_start = microtime_float();
while(list($k, $v) = each($a)) $a[$k] = $prefix.$v;
printf ("<font color=#C0C0C0>Времени затрачено: %.30f sec</font><br>",microtime_float()-$time_start);
}
?>
Ну а теперь сводка:
PHP:
foreach($a as $id=>$val) $a[$id] = $prefix.$val;
Времени затрачено: 0.039872884750366210937500000000 sec
Времени затрачено: 0.031689167022705078125000000000 sec
Времени затрачено: 0.025300979614257812500000000000 sec
Времени затрачено: 0.024485826492309570312500000000 sec
Времени затрачено: 0.026400089263916015625000000000 sec
Времени затрачено: 0.026623010635375976562500000000 sec
Времени затрачено: 0.025132894515991210937500000000 sec
Времени затрачено: 0.025781154632568359375000000000 sec
Времени затрачено: 0.027385950088500976562500000000 sec
Времени затрачено: 0.027029037475585937500000000000 sec
Времени затрачено: 0.039872884750366210937500000000 sec
array_walk($a, 'addPrefix', $prefix);
Времени затрачено: 0.074770927429199218750000000000 sec
Времени затрачено: 0.067498922348022460937500000000 sec
Времени затрачено: 0.060597896575927734375000000000 sec
Времени затрачено: 0.053107023239135742187500000000 sec
Времени затрачено: 0.057142019271850585937500000000 sec
Времени затрачено: 0.056170940399169921875000000000 sec
Времени затрачено: 0.061162948608398437500000000000 sec
Времени затрачено: 0.070729017257690429687500000000 sec
Времени затрачено: 0.061218023300170898437500000000 sec
Времени затрачено: 0.060675144195556640625000000000 sec
Времени затрачено: 0.074770927429199218750000000000 sec
for($q=0; $q<count($a); $q++) $a[$q]=$prefix.$a[$q];
Времени затрачено: 0.037926912307739257812500000000 sec
Времени затрачено: 0.039222955703735351562500000000 sec
Времени затрачено: 0.027750015258789062500000000000 sec
Времени затрачено: 0.025797128677368164062500000000 sec
Времени затрачено: 0.027092933654785156250000000000 sec
Времени затрачено: 0.028239011764526367187500000000 sec
Времени затрачено: 0.028473854064941406250000000000 sec
Времени затрачено: 0.026921987533569335937500000000 sec
Времени затрачено: 0.026704072952270507812500000000 sec
Времени затрачено: 0.026695966720581054687500000000 sec
Времени затрачено: 0.039222955703735351562500000000 sec
$a=explode($prefix.'|=_=|', $prefix.implode($a, $prefix.'|=_=|'.$prefix));
Времени затрачено: 0.032660961151123046875000000000 sec
Времени затрачено: 0.033125162124633789062500000000 sec
Времени затрачено: 0.032413005828857421875000000000 sec
Времени затрачено: 0.027428150177001953125000000000 sec
Времени затрачено: 0.028198957443237304687500000000 sec
Времени затрачено: 0.030070781707763671875000000000 sec
Времени затрачено: 0.030017852783203125000000000000 sec
Времени затрачено: 0.034298181533813476562500000000 sec
Времени затрачено: 0.039752006530761718750000000000 sec
Времени затрачено: 0.036261081695556640625000000000 sec
Времени затрачено: 0.039752006530761718750000000000 sec
while(list($k, $v) = each($a)) $a[$k] = $prefix.$v;
Времени затрачено: 0.080676078796386718750000000000 sec
Времени затрачено: 0.000017881393432617187500000000 sec
Времени затрачено: 0.000015020370483398437500000000 sec
Времени затрачено: 0.000013828277587890625000000000 sec
Времени затрачено: 0.000015020370483398437500000000 sec
Времени затрачено: 0.000015020370483398437500000000 sec
Времени затрачено: 0.000013828277587890625000000000 sec
Времени затрачено: 0.000014066696166992187500000000 sec
Времени затрачено: 0.000015020370483398437500000000 sec
Времени затрачено: 0.000014781951904296875000000000 sec
Времени затрачено: 0.080676078796386718750000000000 sec
for($q=0; $q<count($a); $q++) $a[$q]=$prefix.$a[$q];
Времени затрачено: 0.039222955703735351562500000000 sec
$a=explode($prefix.'|=_=|', $prefix.implode($a, $prefix.'|=_=|'.$prefix));
Времени затрачено: 0.039752006530761718750000000000 sec
foreach($a as $id=>$val) $a[$id] = $prefix.$val;
Времени затрачено: 0.039872884750366210937500000000 sec
array_walk($a, 'addPrefix', $prefix);
Времени затрачено: 0.074770927429199218750000000000 sec
while(list($k, $v) = each($a)) $a[$k] = $prefix.$v;
Времени затрачено: 0.080676078796386718750000000000 sec
Ну вот )) До последнего надеялся выйграть )))) Ну что 2 место тоже результат особенно который изначально не ждал !
Так что зря вы так мой код теперь вполне заслуживает внимания!!!
По поводу сводки:
Сначало идет функциональный код далее 10 результатов далее максимум из 10 в конце отсортерованый список по максимуму.
Пример с while тестировался в цыкле поэтому взят 1 результат остальные в принцепи отброжены так как если убрать цыкл и повторить код 10 раз итог примерно одинаков.
Дело в том что функция each не передвигала заного эллемены а брала постоянно последний.
PS. Сори за ошибки 7 утра всетаки ))
Добавлено через 3 минуты
saen
Сегодня не ваш день...
Мало того что код тормазит так еще и на облодателя 1 места ни за что наехали...
PS. На счет 1 кода все ещё 1 место за мной !!!
Ну что кто рискнет реализовать в 1 строку да ещё и быстрее !?
Добавлено через 25 минут
for($q=0; $q<count($a); $q++) $a[$q]=$prefix.$a[$q];
Код быстр но 1 неувязочка это работа только с неасоциативным масивом и при этом ключи должны идти с 0 и далее по порядку.
Безопасно делать тогда array_values() а это соответственно дополнительное время а именно "Времени затрачено: 0.011640071868896484375000000000 sec"
Теперь вы не на 1 месте )) наконец токи я на 1 месте
$a=explode($prefix.'|=_=|', $prefix.implode($a, $prefix.'|=_=|'.$prefix));
Код бастрый но убивает асоциативные ключи и на выходе не асоциативный масив.
foreach($a as $id=>$val) $a[$id] = $prefix.$val;
Код по свойму хорош и в принцепи если по юзабилити то выходит на 1 место апять токи смещяя меня ((((
Тут говарить неочем... юзабилити есть но код как черепаха ((
array_walk($a, 'addPrefix', $prefix);
while(list($k, $v) = each($a)) $a[$k] = $prefix.$v;
Если по времени то
I место
Inviseble_Demon
II место
KillDead
III место
Igor123
Если по юзабилити и времени
I место
KillDead
II место
Inviseble_Demon
III место
Igor123
Всетаки
Igor123 зря вам было отдано 1 место изначально ))
Но как говарится если под случай то всетаки ваш код лучший !