Haven还能找到一个直接的答案..我的阵列$ sitematches:
if (preg_match('/<start>(.*?)<finish>/s', $source, $matches)) {
if (preg_match_all('/<a\s[^>]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU', $matches[1], $sitematches)); {
print_r($sitematches);
}
}
产生
Array
(
[0] => Array
(
[0] => <A HREF="http://site1.com">aaa</A>
[1] => <A HREF="http://site2.com">bbb</A>
[2] => <A HREF="http://site3.com">ccc</A>
[3] => <A HREF="http://site4.com">ddd</A>
)
[1] => Array
(
[0] => http://site1.com
[1] => http://site2.com
[2] => http://site3.com
[3] => http://site4.com
)
[2] => Array
(
[0] => aaa
[1] => bbb
[2] => ccc
[3] => ddd
)
)
我如何输出:
1 - aaa - http://site1.com
2 - bbb - http://site2.com
3 - ccc - http://site3.com
4 - ddd - http://site4.com
答案 0 :(得分:1)
for ($i = 0; $i < count($sitematches[0]); $i++)
print "$i - {$sitematches[2][$i]} - {$sitematches[1][$i]}\n";
只需获取大小(count($ sitematches [0]))然后遍历数组。
答案 1 :(得分:0)
foreach的另一个可能性是:
foreach ($sitematches[1] as $key => $url)
print "$key - {$sitematches[2][$key]} - $url\n";
但至少需要一次直接阵列访问。