If I do:
ltrim('53-34567', '53-');
ltrim('53+34567', '53+');
ltrim('53*34567', '53*');
I get 4567 as the result and not 34567. What's the explanation for this behavior?
If I do:
ltrim('53-34567', '53-');
ltrim('53+34567', '53+');
ltrim('53*34567', '53*');
I get 4567 as the result and not 34567. What's the explanation for this behavior?
ltrim('53-34567', '53-');
There is a 5 at the begining of '53-34567' so it is removed.
There is a 3 at the begining of '3-34567' so it is removed.
There is a - at the begining of '-34567' so it is removed.
There is a 3 at the begining of '34567' so it is removed.
There is nothing in '53-' at the begining of '4567' so it stopped.
This is the same behaviour than a trim() by removing unwanted trailing characters. In example, trim(" lots of spaces "); will return "lots of spaces" by removing trailing and leading spaces but will keep the inner ones.
The second argument of ltrim() is as follows
character_mask
You can also specify the characters you want to strip, by means of the character_mask parameter. Simply list all characters that you want to be stripped.
It's used to specify which characters to trim, yours include 3. If you know what you want to extract, you can use other string functions.
As to why the other 5 is then not removed, see this comment: http://php.net/manual/en/function.ltrim.php#118221
This is because ltrim trims characters from a second param.
How it works: