Array como parâmetro de funções

Estou tendo dificuldade nesse código, onde quero gerar um array aleatório de 5 números e esses números tem que ser diferentes. Só que apenas a 1ª posição do array esta sendo preenchida.
Fiz esse mesmo código em javascript trocando apenas as funções de cada linguagem e deu certo.
Mas em PHP não estou conseguindo.

function temElememnto($valor, $array, $i) {
    if (in_array($valor, $array)) {
        return 1;
    } else {
        $array[$i] = $valor;
        return 0;
    }
}

function createCartela() {
    $array = array();
    for ($i = 0; $i < 5; $i++){
        do {
            $numTemp = mt_rand(1, 10);
            if ($i >= 1) {
                $x = temElememnto($numTemp, $array, $i);
            } 
            else {
                $array[$i] = $numTemp;
                $x = 0;
            }
        } while ($x === 1);
    }
    
    return $array;
}

$cartela1 = createCartela();

echo "<pre>";
print_r($cartela1);
echo "</pre>";