Beste toppers

Ik ben bezig met een site maar ik zoek een manier om het volgende te doen

Ik krijg straks een $_get waar een landcode gevolgt met een nummer in komt te staan.
Bijvoorbeeld

nl11
de50
net21

Is er een manier dat ik de letters en cijfers van elkaar kan scheiden?
MVG
Stefan
Simpele oplossing:

<?php
$string = 'nl11';
$country = '';
$number = '';

for($i = 0; $i < strlen($string); $i++)
{
if(ctype_digit($string[$i]))
{
$number .= $string[$i];
}
else
{
$country .= $string[$i];
}
}

echo 'Country: '.$country.'<br />
Number: '.$number;
?>
Uitkomst:

Country: nl
Number: 11
Of korter:
<?php
$string = 'nl11';
$number = intval($string);
$country = str_replace($number, "", $string);
?>


Dat echoen mag je uiteraard zelf doen.


[edit]Werkt inderdaad niet![/edit]
@Eddy: werkt niet, voortaan eerst even testen?

Result:
Country: nl11
Number: 0
Wat dacht je van:
<?php
$string = 'nl11';
preg_match('#^([a-z]+)([0-9]+)$#', $string, $match);
list($string, $country, $number) = $match;
?>
Preg_match is hier overkill, het kan hier namelijk met simpele string functions worden gedaan:

<?php
$string = 'nl11';
$number = ltrim($string, 'a..z');
$country = rtrim($string, '0..9');
var_dump($number, $country);
?>

Edit:
Ik heb even een test uitgevoerd met de pear benchmark geval:
<?php
<?php
//$string = 'nl11';
  require_once 'Benchmark/Iterate.php';
 
  $benchmark = new Benchmark_Iterate;
 
  function Karl($string) {
	$number = ltrim($string, 'a..z');
	$country = rtrim($string, '0..9');
	echo 'Country: ' . $country . ' Number: ' . $number . '<br />';
  }
  
  function Chris($string) {
	$country = '';
	$number = '';

	for($i = 0; $i < strlen($string); $i++)
	{
    if(ctype_digit($string[$i]))
    {
        $number .= $string[$i];
    }
    else
    {
        $country .= $string[$i];    
    }
	}

	echo 'Country: '.$country.'<br />
	Number: '.$number;
	}
	
	function Miloan($string) {
	preg_match('#^([a-z]+)([0-9]+)$#', $string, $match);
	list($string, $country, $number) = $match;
	echo 'Country: ' . $country . ' Number: ' . $number . '<br />';
	}
 
  $benchmark->run(100, 'Karl', 'nl11');
  $resultkarl = $benchmark->get();
  
  $benchmark->run(100, 'Chris', 'nl11');
  $resultchris = $benchmark->get();
  
  $benchmark->run(100, 'Miloan', 'nl11');
  $resultMiloan = $benchmark->get();
  
  
  var_dump($resultkarl["mean"], $resultchris["mean"], $resultMiloan["mean"]);
  ?>

Het resultaat is steeds ongeveer dit:

string(8) "0.000061" string(8) "0.000248" string(8) "0.000154"

Die van mij is dus het snelste, daarna die van Miloan en dan die van Chris.

Reageren