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
Output for 8.2.0 - 8.2.27, 8.3.0 - 8.3.15, 8.4.1 - 8.4.2
Maria Clara da Maria Maria João

preferences:
40.36 ms | 406 KiB | 5 Q