- 2009-02-10 (火) 17:54
- PHP
spyc: a simple php yaml classを使ってよみこんだ配列データの重複をチェックするには、このページのコメントにのってるarray_repeated関数を使えば出来そうな気がする。
自分用メモ。
PHPコード
$data1 = array( 1=> array('shipment'=>19, 'insert'=> 103, 'component'=> 121), 2=> array('shipment'=>39, 'insert'=> 103, 'component'=> 121), 3=> array('shipment'=>139, 'insert'=> 103, 'component'=> 121), 4=> array('shipment'=>9, 'insert'=> 103, 'component'=> 121), 5=> array('shipment'=>9, 'insert'=> 103, 'component'=> 121), 6=> array('shipment'=>19, 'insert'=> 103, 'component'=> 121) ); $data2 = array( array('品番'=> '1236', '品名'=> 'レタス'), array('品番'=> '1234', '品名'=> 'レタス'), array('品番'=> '1234', '品名'=> 'バナナ'), array('品番'=> '1134', '品名'=> 'レタス'), array('品番'=> '1234', '品名'=> 'レタス'), array('品番'=> '1134', '品名'=> 'レタス') ); $result1 = array_repeated($data1); $result2 = array_repeated($data2); echo '■ $data1--------------------------'."\n\n"; var_dump($result1); echo "\n"; echo '■ $data2--------------------------'."\n\n"; var_dump($result2); /** * 重複チェック * * http://jp2.php.net/manual/ja/function.array-unique.php より * * @param string $array 配列キーは数字である必要がある * @return array キー(index番号)を保っている */ function array_repeated($array) { if ( !is_array($array) ) { return false; } $duplicates = array(); foreach ( $array as $key => $val ) { end($array); $k = key($array); $v = current($array); while ( $k !== $key ) { if ( $v === $val ) { $duplicates[$key] = $v; break; } $v = prev($array); $k = key($array); } } return $duplicates; }
出力結果
■ $data1--------------------------
array(2) {
[1]=>
array(3) {
["shipment"]=>
int(19)
["insert"]=>
int(103)
["component"]=>
int(121)
}
[4]=>
array(3) {
["shipment"]=>
int(9)
["insert"]=>
int(103)
["component"]=>
int(121)
}
}
■ $data2--------------------------
array(2) {
[1]=>
array(2) {
["品番"]=>
string(4) "1234"
["品名"]=>
string(9) "レタス"
}
[3]=>
array(2) {
["品番"]=>
string(4) "1134"
["品名"]=>
string(9) "レタス"
}
}
- Newer: [PHP] PHPでMySQLのDISTINCTみたいなことをやりたい
- Older: KAKASIの使い方メモ
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://side-b.sto.co.jp/weblog/archives/431/trackback
- Listed below are links to weblogs that reference
- [PHP] ある種の配列、重複チェック from Side-B