Re: how to explode or split or chunk in an efficient way
| From: | Robert Cummings | Date: | Thu, 24 Jul 2014 19:04:16 +0000 |
| Subject: | Re: how to explode or split or chunk in an efficient way | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-323660@lists.php.net to get a copy of this message | ||
On 14-07-24 02:49 PM, Robert Cummings wrote:
On 14-07-24 12:18 PM, Negin Nickparsa wrote:Sorry, I missed that you want the 60 and the 1... I think others have done similarly but just to be different here's another take: <?php $str = 'C60P1 Unit'; list( $num1, $num2 ) =I have a string which always has "C" then a number which it's length can change anytime and then "P" and then a space and then a word like: echo "C60P1 Unit";This doesn't match your description... there's a number after the 'P' :)is it anyway to split the string by type? from the manual I did this: function multiexplode ($delimiters,$string) {<?php $str = 'C60P1 Unit'; $num = preg_replace( '#^[^[:digit:]]+([[:digit:]]+).*$#', '\1', $str ); ?>$ary = explode($delimiters[0],$string); array_shift($delimiters); if($delimiters != NULL) { foreach($ary as $key => $val) { $ary[$key] = multiexplode($delimiters, $val); } } return $ary;} echo "C60P1 Unit"; $str="C60P1 Unit"; $delimiters = Array("C","P"," "); $res = multiexplode($delimiters,$str); echo '<pre>'; print_r($res); echo '</pre>'; but it seems to me it is so complex for such a small string does anything for type exist which I don't know about to for example just grab the numbers?because I just care about the numbers here 60 and 1 seperately
explode( ':', preg_replace( '#^[^[:digit:]]+([[:digit:]]+)[^[:digit:]]+([[:digit:]]+).*$#', '\1:\2', $str ) );echo $num1."\n"; echo $num2."\n"; ?> Cheers, Rob. -- Phone: 613-822-9060 +++ Cell: 613-600-2836 E-Mail Disclaimer: Information contained in this message and any attached documents is considered confidential and legally protected. This message is intended solely for the addressee(s). Disclosure, copying, and distribution are prohibited unless authorized.