El post anterior se hizo largo (mucho codigo)..... voy a postear la solucion "justa" donde podras ver que si cambias el orden, el resultado cambia poco (porque de todas formas hay repeticion de valores)
Código PHP:
Ver original<?php
function italico1(&$arr)
{
if ($cant==0) return null;
$salida = null;
if ($cant>1)
{
for ($i=0;$i<$cant-2;$i++)
$salida .= $arr[$i].' ,';
return $salida.$arr[$cant-2].' y '.$arr[$cant-1];
}else
return $arr[0];
}
function italico2(&$arr)
{
{
case 0: return null;
case 1: return $arr[0];
default:
return implode (' ,',$arr).' y '.$ult; }
}
function alexis($array) {
}
for ($i = 0; $i < 1000; $i++)
italico1($a[0]);
$tiempoItalico1 = $fin1 - $ini1;
for ($i = 0; $i < 1000; $i++)
italico2($a[2]);
$tiempoItalico2 = $fin1 - $ini1;
for ($i = 0; $i < 1000; $i++)
alexis($a[1]);
$tiempoAlexis = $fin2 - $ini2;
echo "Italico (script #1): " . $tiempoItalico1."\n";
echo "Italico (script #2): " . $tiempoItalico2."\n";
echo "Alexis: " . $tiempoAlexis;
En el orden que quieras.....
Cita: Alexis: 55 seg aprox
Italico #1: 162 seg aprox
Italico #2: 25 seg aprox << winner
Asi que... es cierto que se puede ganar velocidad con funciones nativas y de hecho las he utilizado en la ultima version pero
a difierencia tuya no recorro el arreglo varias veces con distintas funciones (nativas o no) y por eso a la final.......... gano :)