関数 arrayval

PHPの標準ライブラリにはarrayval関数はありませんが、同様の機能を独自に実装することが可能です。以下は、任意の値を配列に変換する実装例です:値が既に配列の場合はそのまま返され、それ以外の型の場合は一つの要素を持つ配列が作成されます。

関数の実装

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

使用例

作成した関数を使用して文字列を配列に変換します:

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

コード実行結果:

php['abcde']

使用例

数値を変換してみます:

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

コード実行結果:

php[123]

使用例

配列での動作を確認します:

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

コード実行結果:

php[1, 2, 3]

代替ソリューション

PHPには配列への変換を行う他の方法があります:

php<?php
  // (array) 型キャストの使用
  $array = (array)'string';
  print_r($array); // ['string']
  
  // オブジェクトの場合、型キャストの動作は異なります
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

関連項目

  • 関数 is_array,
    変数が配列かどうかをチェックします
  • 関数 settype,
    変数の型を変換します