3v4l.org

run code in 300+ PHP versions simultaneously
<?php function reduzirNome($nomeCompleto, $numeroPalavras = -1) { $palavras = explode(' ', trim($nomeCompleto)); // Divide o nome completo em um array de palavras // Verifica se há pelo menos um nome $partes = count($palavras); if ($partes === 0) return ''; elseif ($partes === 1) return $palavras[0]; // O primeiro nome será sempre incluído $primeiroNome = array_shift($palavras); // Se o número de palavras for positivo if ($numeroPalavras > 0) { $limite = min($numeroPalavras, count($palavras)); // Verifica o limite, garantindo que ele não exceda o tamanho do array $palavras = array_slice($palavras, 0, $limite); // Retorna as palavras que em breve se unirão ao primeiro nome } elseif ($numeroPalavras < 0) { $limite = min(+$numeroPalavras, count($palavras)); // Verifica o limite, garantindo que ele não exceda o tamanho do array $palavras = array_slice($palavras, $numeroPalavras, $limite); // Retorna as palavras que em breve se unirão ao primeiro nome } else { $palavras = []; // Apenas o primeiro nome se $numeroPalavras for 0 } // Junta o primeiro nome com as palavras extras e retorna return trim($primeiroNome . ' ' . implode(' ', $palavras)); } // Exemplos de uso echo reduzirNome("Maria Clara da Silva", 2); // Maria Clara da echo "\n"; echo reduzirNome("Maria Clara da Silva", -2); // Maria da Silva echo "\n"; echo reduzirNome("Maria", 2); // Maria echo "\n"; echo reduzirNome("João Pedro", 0); // João

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.4.20.0070.01321.45
8.4.10.0390.00817.33
8.3.150.0130.00617.29
8.3.140.0160.00418.31
8.3.130.0400.00016.29
8.3.120.0300.01016.29
8.3.110.0300.01016.29
8.3.100.0390.01016.54
8.3.90.0390.00716.58
8.3.80.0370.00916.41
8.3.70.0360.01016.57
8.3.60.0390.00716.23
8.3.50.0360.01116.57
8.3.40.0460.00317.48
8.3.30.0340.00317.45
8.3.20.0350.00317.21
8.3.10.0260.01217.31
8.3.00.0140.00817.66
8.2.270.0050.00216.87
8.2.260.0330.00616.23
8.2.250.0350.00316.78
8.2.240.0320.00716.16
8.2.230.0300.00916.69
8.2.220.0330.00416.79
8.2.210.0270.01216.34
8.2.200.0300.01116.43
8.2.190.0290.00716.32
8.2.180.0150.00816.84
8.2.170.0160.00217.84
8.2.160.0200.00017.73
8.2.150.0250.00017.36
8.2.140.0190.00017.47
8.2.130.0210.00017.42
8.2.120.0270.00817.57
8.2.110.0320.00917.66
8.2.100.0360.00417.58
8.2.90.0360.00417.64
8.2.80.0360.00017.63
8.2.70.0250.00617.70
8.2.60.0150.01117.37
8.2.50.0320.00617.66
8.2.40.0310.00717.52
8.2.30.0300.00917.48
8.2.20.0340.00417.38
8.2.10.0280.00917.25
8.2.00.0250.01317.53

preferences:
42.28 ms | 406 KiB | 6 Q