- var_dump: documentation ( source)
- is_numeric: documentation ( source)
- array_filter: documentation ( source)
- preg_split: documentation ( source)
<?php
$arr = array("station8", "2ndExit", "block9a", "floor5");
echo "<pre>" . __FILE__ . '-->' . __METHOD__ . ':' . __LINE__ . PHP_EOL;
var_dump(minMaxNum($arr));
die();
function minMaxNum ($arr = array()) {
$min = $max = null;
foreach ($arr as $value) {
$value = preg_split('/(?<=\d)(?=[a-zA-Z])|(?<=[a-zA-Z])(?=\d)/i', $value);
$value = array_filter($value, function ($n){
if(!is_numeric($n)) {
unset($n);
} else {
return $n;
}
});
foreach($value as $item) {
if($min == null && $max == null) { // not initiated
$min = $max = $item;
} else {
if($item < $min) $min = $item;
if($item > $max) $max = $item;
}
}
}
echo "<pre>" . __FILE__ . '-->' . __METHOD__ . ':' . __LINE__ . PHP_EOL;
var_dump($min, $max);
die();
}