Jayram121 Posted October 20, 2013 Share Posted October 20, 2013 $phoneDevices = array( 'iPhone' => '\biPhone.*Mobile|\biPod', // |\biTunes 'BlackBerry' => 'BlackBerry|\bBB10\b|rim[0-9]+', 'HTC' => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\bEVO\b', 'Nexus' => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile', // @todo: Is 'Dell Streak' a tablet or a phone? 'Dell' => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\b001DL\b|\b101DL\b|\bGS01\b', 'Samsung' => 'Samsung|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-S5350|GT-S5360|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535', 'Sony' => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|SonyEricssonMT27i', 'Asus' => 'Asus.*Galaxy|PadFone.*Mobile', ); $searchValue ="GT-5830i"; In the array I am looking for the word, ‘GT-5530i’but in the array only GT-5530 word is there, without the last letter ‘i’. How can I match this word? Quote Link to comment https://forums.phpfreaks.com/topic/283118-find-match-in-the-array/ Share on other sites More sharing options...
Ch0cu3r Posted October 20, 2013 Share Posted October 20, 2013 (edited) $phoneDevices is an associative array which contains phone manufactures as the array index (key) and corresponding models as regex patterns (value). Your current code most probably detects the manufacturer. Uses it as the key and performs a regex match on the phone models listed. For your code to match other models, you just need to add it to the list, separate each model with a pipe character |. If there two models named similarly, like GT-5830 and GT-5830i then add i? after the model name in the list. Edited October 20, 2013 by Ch0cu3r Quote Link to comment https://forums.phpfreaks.com/topic/283118-find-match-in-the-array/#findComment-1454620 Share on other sites More sharing options...
alpine Posted October 20, 2013 Share Posted October 20, 2013 (edited) Either you have a typo or your description is inacurate, you havent got GT-5830 in your list but you have GT-S5830 You could hack all this around, but most probably it wont fit all your requirements. But as an example on this exact question: $searchValue ="GT-S5830i"; foreach($phoneDevices as $key => $devices){ $device = explode('|',$devices); while(list($sub_key, $val) = each($device)) { if(stripos($searchValue,$val) !== false){ echo 'Found '.$searchValue.' in '.$key.' list as '.$val; // Found GT-S5830i in Samsung list as GT-S5830 } } } Result: Found GT-S5830i in Samsung list as GT-S5830 Edited October 20, 2013 by alpine Quote Link to comment https://forums.phpfreaks.com/topic/283118-find-match-in-the-array/#findComment-1454621 Share on other sites More sharing options...
Solution Jayram121 Posted October 20, 2013 Author Solution Share Posted October 20, 2013 Thank YOU. Quote Link to comment https://forums.phpfreaks.com/topic/283118-find-match-in-the-array/#findComment-1454623 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.