寻找PHP脚本在单独的行中对电话号码(xxx-xxx-xxxx)进行排序

时间:2018-03-14 00:30:31

标签: php arrays

我正在寻找php数组脚本,所以我可以在不同的行中编写我的电话号码列表 xxx-xxx-0001在第一行 xxx-xxx-0002在第二行 xxx-xxx-0003在第三行 在我的网站上

<!DOCTYPE html>
<html>
<body>

<?php
$numbers = array(4, 6, 2, 22, 11);
sort($numbers);

$arrlength = count($numbers);
for($x = 0; $x < $arrlength; $x++) {
echo $numbers[$x];
echo "<br>";
}
?>

</body>
</html>

我正在尝试添加手机格式xxx-xxx-xxxx而不是数字,但它不能正常工作

<!DOCTYPE html>
<html>
<body>

<?php
$numbers = array(416-224-0001,416-224-0002,416-224-0003);
sort($numbers);

$arrlength = count($numbers);
for($x = 0; $x < $arrlength; $x++) {
echo $numbers[$x];
echo "<br>";
}
?>

</body>
</html>

那是我试过的,如果我做错了,请告诉我

1 个答案:

答案 0 :(得分:0)

假设您想纯粹基于最后4位数字排序(连字符后面的最后一位数字:

   function cmp($a, $b) {

   if ($a == $b) {//ptobably wont apply here
       return 0;
   }

   $explodedA = explode('-', $a);
   $explodedB = explode('-', $b);
   $lastBitA = $explodedA[count($explodedA) - 1];//get the last section for the compare
   $lastBitB = $explodedB[count($explodedB) - 1];


   if ($lastBitA == $lastBitB) { 
      return ($a < $b) ? -1 : 1;
   }

   return ($lastBitA < $lastBitB) ? -1 : 1;
}

$numbers = array('777-999-0002','416-224-0003','416-224-0001','776-244-0008');
usort($numbers, "cmp");

print_r($numbers);

//返回

Array
(
    [0] => 416-224-0001
    [1] => 777-999-0002
    [2] => 416-224-0003
    [3] => 776-244-0008
)