Função arrayval

Na biblioteca padrão do PHP não existe uma função arrayval, mas é possível implementar uma funcionalidade similar por conta própria. Abaixo está um exemplo de implementação que converte qualquer valor em um array: se o valor já for um array, ele é retornado sem alterações; para outros tipos, é criado um array com um único elemento.

Implementação da função

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
?>

Exemplo de uso

Vamos converter uma string em um array usando nossa função:

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval('abcde');
  print_r($res);
?>

Resultado da execução do código:

php['abcde']

Exemplo de uso

Vamos tentar converter um número:

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval(123);
  print_r($res);
?>

Resultado da execução do código:

php[123]

Exemplo de uso

Vamos verificar o funcionamento com um array:

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval([1, 2, 3]);
  print_r($res);
?>

Resultado da execução do código:

php[1, 2, 3]

Soluções alternativas

Existem outras maneiras de converter para array no PHP:

php<?php
  // Uso da conversão de tipo (array)
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Para objetos, a conversão de tipo funciona de forma diferente
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Veja também

  • a função is_array,
    que verifica se uma variável é um array
  • a função settype,
    que converte o tipo de uma variável