>>258-259
レスありがとうございます。質問者のボクが質問の趣旨を理解していませんでした。

1: preg_match('|<title>(.*?)</title>|', $html, $match['title']);
2: preg_match('|<h1>(.*?)</h1>|', $html, $match['h1']);
3: user_function($match['title'][1], $match['h1'][1]);

1:の瞬間、$match['title']の[0]は不要なのに、切り捨てる手段がないのがもどかしい。
なので3:の時点まで「$match['title']は[0]と[1]の配列だけど必要なのは[1]だ」ということを覚えておかなくちゃいけない。

仮にpreg_matchが$macthを返すような関数なら、こう書けてとてもスッキリするのに…。
1: $match['title'] = current(preg_match('|<title>(.*?)</title>|', $html));
2: $match['h1'] = current(preg_match('|<h1>(.*?)</h1>|', $html));
3: user_function($match['title'], $match['h1']);

Rubyならこうかな?
1: $match['title'] = preg_match('|<title>(.*?)</title>|', $html)[1];

みたいなことを思ったのです。