Zend\Stdlib\ArrayUtilsは、配列について少し便利なチェックや操作が行えるクラスです。
ArrayUtils::isHashTable()はややこしそうに見えますが、実は単にisListの逆です。
ArrayUtils::iteratorToArray()は特徴として、イテレータが多重になっている場合は全て多重配列に解凍してくれます。
array_merge()は数値キーが0から振り直されてしまいますが、ArrayUtils::merge()は数値キーもそのままです。
本気でちょっとだけ便利なようなユーティリティでした。
いまだにリファレンスに載ってないAPIが多すぎる。
<?php
header('Content-type: text/html; charset=UTF-8');
require_once('path/to/channel/vendor/autoload.php');
use Zend\Stdlib\ArrayUtils;
$sample = array();
$sample[2] = 1;
$sample[3] = 'foo';
$sample['hoge'] = true;
$sample['fuga'] = 'bar';
// 配列が文字列のキーを持つか(is_string) → true
$hasStringKeys = ArrayUtils::hasStringKeys($sample);
// 配列が整数のキーを持つか(is_int) → true
$hasIntegerKeys = ArrayUtils::hasIntegerKeys($sample);
// 配列が数値形式文字列のキーを持つか(is_numeric) → true
$hasNumericKeys = ArrayUtils::hasNumericKeys($sample);
// 連想配列、もしくは0から順に値が埋まっていない配列であるか → false
$isList = ArrayUtils::isList($sample);
// isListの逆、ハッシュテーブルか → true
$isHashTable = ArrayUtils::isHashTable($sample);
// in_array('foo', array(0))がtrueになるのを修正 → false
$inArray = ArrayUtils::inArray(0, $sample);
// イテレータから配列に
$iteratorToArray = ArrayUtils::iteratorToArray(new \ArrayObject($sample));
// 配列のマージ。連想配列は上書き。数値キーは振り直されず、重複は追記。
$merge = ArrayUtils::merge($sample, $sample);
ArrayUtils::isHashTable()はややこしそうに見えますが、実は単にisListの逆です。
ArrayUtils::iteratorToArray()は特徴として、イテレータが多重になっている場合は全て多重配列に解凍してくれます。
array_merge()は数値キーが0から振り直されてしまいますが、ArrayUtils::merge()は数値キーもそのままです。
本気でちょっとだけ便利なようなユーティリティでした。
いまだにリファレンスに載ってないAPIが多すぎる。
PR