public function binarySearchSort(array $arr,$value) :int
    {
    $length = count($arr);
    $left = 0;
    $right = $length - 1;
    while ($left <= $right){
    // 取中间值下标
    $middle = (int)(($left+$right)/2);
    if($arr[$middle] > $value){ // 如果所取结果大于查找值,那么就排除右边$right,重新给$right赋值为中间下标-1
    $right = $middle - 1;
    }elseif ($arr[$middle] < $value){ //如果所取结果小于查找值,那么就排除左边$left,重新给$left赋值为中间下标+1
    $left = $middle + 1;
    }else{
    return $middle; // 刚好在中间
    }
    }
    return -1; // 不存在
    }