私の意見では、より簡単に操作できる構造は、次のようなものになります。
$matches = array(
array( 'name' => 'somename', 'priority' => $priority_level_for_this_match ),
array( 'name' => 'someothername', 'priority' => $priority_level_for_that_match )
)
この配列を埋めるには、空の配列を作成することから始めます。
$matches = array();
次に、すべての一致を見つけます。
$match = array( 'name' => 'somename', 'priority' => $some_priority );
その配列をマッチに追加するには、最後にそれを叩くだけです:
$matches[] = $match;
いっぱいになったら、簡単に反復できます。
foreach($matches as $k => $v) {
// The value in this case is also an array, and can be indexed as such
echo( $v['name'] . ': ' . $v['priority'] . '<br>' );
}
一致した配列を優先度に従ってソートすることもできます。
function cmp($a, $b) {
if($a['priority'] == $b['priority'])
return 0;
return ($a['priority'] < $b['priority']) ? -1 : 1;
}
usort($matches, 'cmp');
(この回答から引用)