2012-03-05 4 views
2

나는 항상 논리적으로 증가하는 일련의 숫자를 가지고 있습니다. 이 번호는 실제로 데이터베이스의 버전 번호를 나타냅니다. PHP를 사용하여PHP로 시리즈 값 증가시키기

  • 1.0
  • 1.0.1
  • 2.0.0
  • 2.0.1

, 나는 내가 비교할 수 있습니다 알고 : 그래서 예를 들어, 여기에 몇 가지 샘플 데이터를 SI 예를 들어, 2.0.1이 2.0.3보다 작다는 것을 결정하지만, 2.0.1에서 2.0.3으로 점프하여 시리즈가 깨지는 것을 문법적으로 결정하는 방법이 있습니다 (2.0.2를 건너 뜁니다)?

+0

[PHP로 시퀀스에서 누락 된 값을 찾는 방법?] (http://stackoverflow.com/questions/3777817/how-to-find-missing-values-in-a-sequence-with- PHP) –

+1

중복에 동의하지 않기를 바랍니다 : 질문 3777817은 정수에 대해 말하지 만, 이에 비교할 수있는 항목을 추출하는 것이 주요 포인트입니다. –

답변

1

우선주의하십시오! 1.0.2, 1.1.0 또는 2.0에 대한 1.0.1의 간단한 PHP 문자열 비교는 예상대로 작동하지만, 문자열 비교 내가 원하는 것이 아닙니다 의심

'1.10.1' < '1.9.9' 
'10.0' < '2.0' 

에있는 것입니다. 간단히 말해서 : 숫자가 바뀌면 모든 것이 깨집니다.

그래서 당신은 당신의 버전 문자열에서 실제 정수를 당겨 멀리 추상적 인 비교를해야합니다,이 사소한 만 compare() 기능을 구현뿐만 아니라 구멍을 확인하기 위해 is_sequence() 같은 것을 구현하지 않을 수 있습니다.

+0

명확하게 말하자면 : 1.) compare()를 만들면 가짜 문자열 비교에 도움이됩니다. 2.)'is_sequence()'를 만드는 것은 질문에 대한 나의 대답이고, 그것은 크게 1에서 영감을 받았다.) –

+0

더 명확하게하기 위해서 : 그는 당신의 버전 문자열 *에서 실제 정수를 가져와야한다. 정수에 대한'is_sequence()'의 문제를 해결하십시오. 이것은 독자를위한 운동으로 남아 있습니다. –

관련 문제