linia 20: if( strpos( $klucz, $wartosc.
'.' ) === 0 ){ // dodajesz kropkę, aby potwierdzić, że to podciąg rodzica
@Pr0100 nie chce mi się robić testów wydajnościowych, bo to gruba przesada będzie, ale zwróć uwagę na to, iż:
1) sortowanie wyniku nie ma nic do rzeczy, bo i tak obaj nie zachowujemy porządku kluczy,
2) robisz dokładnie to samo co ja, ale niepotrzebnie komplikując kod
3) Twój skrypt działa niepoprawnie:
moje dane wejściowe, Twoja funkcja, wynik:
array ( 0 => '1.1.11', 1 =>
'31.1.17.18.24.56', 2 => '31.2.13', 3 => '1.1.1', 4 =>
'31.1.17.18.24.56.78.12', )
wartość pod kluczem 1 jest podciągiem 4
mały test: http://pastebin.com/f2d4bbd26moja wersja jest przeszło 2x szybsza
poprawiona wersja
<?php
'1.1.11',
'31',
'31.1',
'31.1.17.18',
'31.1.17.18.24',
'31.1.17',
'31.1.17.18.24.56',
'31.2',
'31.2.13',
'1.1.1',
'31.1.17.18.24.56.78.12',
);
for($i = 0; $i < $ilosc; $i++){
if( isset($tab[$i+1
]) && $test ){ $wynik[] = $tab[$i+1];
}
}
?>
KU PAMIĘCI