忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/11/23 23:21 |
Zend Framework2.1.3 Zend\Stdlib\ArrayUtils
Zend\Stdlib\ArrayUtilsは、配列について少し便利なチェックや操作が行えるクラスです。

<?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


2013/04/08 22:48 | Comments(0) | PHP

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<WEBZARU 「PHPでCSVデータを読み込む(文字化け対策ver)」 の感想 | HOME | 買ったものリスト 2013/04/07>>
忍者ブログ[PR]