<?php
$str = 'NAME OF ITEM 123456789012
OTHER NAME 987654321098
NAME 567890123456';
preg_match_all( '/^(.*?)\s+((?:^|\D)(\d{12})(?=\D|$)+)/m', $str, $matches);
$items = array();
foreach( $matches[2] as $k => $upc) {
$items[$upc] = $matches[1][$k];
}
echo $items['987654321098']; // OTHER NAME
Notice: Undefined offset: 987654321098 in /in/XuPfA on line 11
Output for 7.3.32 - 7.3.33, 7.4.26
Output for 5.4.0 - 5.4.8
Warning: preg_match_all(): Compilation failed: nothing to repeat at offset 34 in /in/XuPfA on line 5
Warning: Invalid argument supplied for foreach() in /in/XuPfA on line 8
Notice: Undefined offset: 987654321098 in /in/XuPfA on line 11
Output for 5.3.19 - 5.3.29
Notice: Undefined index: 987654321098 in /in/XuPfA on line 11
Output for 5.3.0 - 5.3.18
Warning: preg_match_all(): Compilation failed: nothing to repeat at offset 34 in /in/XuPfA on line 5
Warning: Invalid argument supplied for foreach() in /in/XuPfA on line 8
Notice: Undefined index: 987654321098 in /in/XuPfA on line 11
Warning: preg_match_all(): Compilation failed: nothing to repeat at offset 34 in /in/XuPfA on line 5
Warning: Invalid argument supplied for foreach() in /in/XuPfA on line 8
Notice: Undefined index: 987654321098 in /in/XuPfA on line 11
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/XuPfA on line 11
Process exited with code 255.
Output for 4.3.11
Warning: preg_match_all(): Compilation failed: nothing to repeat at offset 34 in /in/XuPfA on line 5
Notice: Undefined index: 987654321098 in /in/XuPfA on line 11
Output for 4.3.0 - 4.3.10
Warning: Compilation failed: nothing to repeat at offset 34 in /in/XuPfA on line 5
Warning: Invalid argument supplied for foreach() in /in/XuPfA on line 8
Notice: Undefined index: 987654321098 in /in/XuPfA on line 11