suin.io

preg_match_allのお供にarray_combine

suin2009年9月10日

preg_match_all()でマッチしたものは配列で返される。なので、その配列を整理するのにforeach()をつかったりしてひと仕事することも多い。しかし、もし、キーと値の関係にあるデータなら、array_combine()を使うと、手軽に連想配列にすることができる。覚えておくといいかもしれない。

$html = '
Apple
りんご
Orange
みかん
Strawberry
いちご
'; preg_match_all('/
(.+)<\/dt>
(.+)<\/dd>/U', $html, $matches); var_dump($matches); /* array(3) { [0]=> array(3) { [0]=> string(32) "
Apple
りんご
" [1]=> string(33) "
Orange
みかん
" [2]=> string(37) "
Strawberry
いちご
" } [1]=> array(3) { [0]=> string(5) "Apple" [1]=> string(6) "Orange" [2]=> string(10) "Strawberry" } [2]=> array(3) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(9) "いちご" } } */ $keys = $matches[1]; $values = $matches[2]; $words = array_combine($keys, $values); // ここがみそ var_dump($words); /* array(3) { ["Apple"]=> string(9) "りんご" ["Orange"]=> string(9) "みかん" ["Strawberry"]=> string(9) "いちご" } */
RELATED POSTS