Цитата из "мануала": ---------- В шаблоне фрагменты выделяются при помощи скобок. Каждому фрагменту выделяется номер в том порядке, в котором они расположены, и соответствующая переменная будет содержать его значение. PHP: $string = "15 apples, 2 foos, 3 bars"; while ($string =~ m/(\d+) (\w+)/g) { print "$2: $1\n"; } # Выведет: # apples: 15 # foos: 2 # bars: 3 ---------- У меня вопрос: как "выдавать" номер каждому фрагменту самостоятельно? Я помню где-то вычитал что можно как-то вручную задавать номер каждой подмаске, и вот когда пришло время этим воспользоваться я забыл как это делается... Перечитал кучу мануалов и статей, но так ничего и не нашел. Если кто знает, подскажите пожалуйста.
Ладно приведу другой пример: Допустим переменная $txt = Код (Text): ... [sectorobject] [objid]id3[/objid] [objtype]type1[/objtype] [objclass]class2[/objclass] [/sectorobject] [sectorobject] [objid]id4[/objid] [objtype]type6[/objtype] [objclass]class5[/objclass] [/sectorobject] ... PHP: <?php #... preg_match_all ("|(?i)\[objid\]([\w\s]*)\[/objid\][\s\S]*[\objtype\]([\w\s]*)\[/objtype\][\s\S]*\[objclass\]([\w\s]*)\[/objclass\]|", $txt, $out, PREG_SET_ORDER); #... ?> При сопоставлении шаблону "id", "type" и "class" пронумеруются попорядку. А что нужно добавить в выражение чтоб пронумеровать фрагменты по-своему? (это точно возможно, я читал где-то но забыл где)
ты сначала обоснуй свое стремление к собственной нумерации подмасок. какая принципиальная разница в использовании $out[0][1] или $out[0][2]?
AndroNick Люди правы, сложно ответить на вопрос, когда непонятно, что именно ты хочешь сделать. Если ты хочешь своим "сущностям" задать некое подобие весов, и например отсортировать их потом по этим весам - то лучше разобрать свою строку, превратить ее в массив, и воспользоваться функцией usort(), написав свою функцию для сравнения, которая будет учитывать эти веса. Если тебе нужно что-то другое - описывай проблему подробнее.