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