ksort Natural Sorting with IP Addresses

This is my array:

[code]
Array
(
[192.168.4.8] => Array
(
[0] => 22,tcp
[1] => 443,tcp
[2] => 23,tcp
[3] => 161,udp
)

[192.168.4.21] => Array
    (
        [0] => 22,tcp
        [1] => 443,tcp
        [2] => 23,tcp
        [3] => 161,udp
    )

[192.168.4.1] => Array
    (
        [0] => 22,tcp
        [1] => 443,tcp
        [2] => 23,tcp
        [3] => 80,tcp
        [4] => 161,udp
    )

[192.168.4.82] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.10] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.5] => Array
    (
        [0] => 22,tcp
        [1] => 23,tcp
        [2] => 161,udp
    )

[192.168.4.85] => Array
    (
        [0] => 22,tcp
        [1] => 445,tcp
        [2] => 443,tcp
        [3] => 139,tcp
        [4] => 137,udp
    )

[192.168.4.91] => Array
    (
        [0] => 3389,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.100] => Array
    (
        [0] => 3389,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.114] => Array
    (
        [0] => 3389,tcp
        [1] => 139,tcp
        [2] => 80,tcp
        [3] => 137,udp
    )

[192.168.4.120] => Array
    (
        [0] => 3389,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.116] => Array
    (
        [0] => 3389,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.149] => Array
    (
        [0] => 3389,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.165] => Array
    (
        [0] => 3389,tcp
        [1] => 139,tcp
        [2] => 137,udp
    )

[192.168.4.143] => Array
    (
        [0] => 3389,tcp
        [1] => 22,tcp
        [2] => 445,tcp
        [3] => 139,tcp
        [4] => 21,tcp
        [5] => 137,udp
    )

[192.168.4.112] => Array
    (
        [0] => 3389,tcp
        [1] => 139,tcp
        [2] => 137,udp
    )

[192.168.4.115] => Array
    (
        [0] => 3389,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.132] => Array
    (
        [0] => 3389,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.105] => Array
    (
        [0] => 22,tcp
        [1] => 443,tcp
        [2] => 80,tcp
    )

[192.168.4.130] => Array
    (
        [0] => 22,tcp
        [1] => 443,tcp
        [2] => 23,tcp
        [3] => 80,tcp
        [4] => 21,tcp
        [5] => 137,udp
    )

[192.168.4.131] => Array
    (
        [0] => 3389,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.138] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 80,tcp
        [3] => 137,udp
    )

[192.168.4.136] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 137,udp
    )

[192.168.4.124] => Array
    (
        [0] => 443,tcp
        [1] => 80,tcp
    )

[192.168.4.102] => Array
    (
        [0] => 443,tcp
        [1] => 80,tcp
    )

[192.168.4.135] => Array
    (
        [0] => 445,tcp
        [1] => 443,tcp
        [2] => 80,tcp
        [3] => 137,udp
    )

[192.168.4.90] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 137,udp
    )

[192.168.4.88] => Array
    (
        [0] => 139,tcp
        [1] => 137,udp
    )

[192.168.4.107] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.89] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.140] => Array
    (
        [0] => 23,tcp
        [1] => 80,tcp
    )

[192.168.4.153] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.113] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.117] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.99] => Array
    (
        [0] => 137,udp
    )

[192.168.4.110] => Array
    (
        [0] => 137,udp
    )

[192.168.4.123] => Array
    (
        [0] => 137,udp
    )

[192.168.4.118] => Array
    (
        [0] => 137,udp
    )

[192.168.4.129] => Array
    (
        [0] => 137,udp
    )

[192.168.4.133] => Array
    (
        [0] => 137,udp
    )

[192.168.4.144] => Array
    (
        [0] => 137,udp
    )

[192.168.4.141] => Array
    (
        [0] => 137,udp
    )

[192.168.4.155] => Array
    (
        [0] => 137,udp
    )

[192.168.4.148] => Array
    (
        [0] => 137,udp
    )

[192.168.4.87] => Array
    (
        [0] => 137,udp
    )

[192.168.4.142] => Array
    (
        [0] => 137,udp
    )

[192.168.4.152] => Array
    (
        [0] => 137,udp
    )

[192.168.4.137] => Array
    (
        [0] => 137,udp
    )

)[/code]

I’m trying to sort the array naturally by the keys (IP address). I’m using this code:

[php]ksort($finar,SORT_NATURAL);[/php]

I expect the array to be sorted like this:

192.168.4.1 192.168.4.5 192.168.4.8 192.168.4.10 192.168.4.21 192.168.4.82 ...and so on

Instead the SORT_NATURAL flag doesn’t do anything. I get the same array back. I tried SORT_REGULAR and I get this:

[code]
Array
(
[192.168.4.1] => Array
(
[0] => 80,tcp
[1] => 23,tcp
[2] => 443,tcp
[3] => 22,tcp
[4] => 161,udp
)

[192.168.4.10] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.100] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.102] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
    )

[192.168.4.105] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
        [2] => 22,tcp
    )

[192.168.4.106] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
    )

[192.168.4.107] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.109] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
    )

[192.168.4.110] => Array
    (
        [0] => 137,udp
    )

[192.168.4.112] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.113] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.114] => Array
    (
        [0] => 80,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.115] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.116] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.117] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.118] => Array
    (
        [0] => 137,udp
    )

[192.168.4.120] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.123] => Array
    (
        [0] => 137,udp
    )

[192.168.4.124] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
    )

[192.168.4.129] => Array
    (
        [0] => 137,udp
    )

[192.168.4.130] => Array
    (
        [0] => 80,tcp
        [1] => 23,tcp
        [2] => 443,tcp
        [3] => 21,tcp
        [4] => 22,tcp
        [5] => 137,udp
    )

[192.168.4.131] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.132] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.133] => Array
    (
        [0] => 137,udp
    )

[192.168.4.135] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.136] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 137,udp
    )

[192.168.4.138] => Array
    (
        [0] => 80,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.140] => Array
    (
        [0] => 80,tcp
        [1] => 23,tcp
    )

[192.168.4.141] => Array
    (
        [0] => 137,udp
    )

[192.168.4.142] => Array
    (
        [0] => 137,udp
    )

[192.168.4.143] => Array
    (
        [0] => 445,tcp
        [1] => 21,tcp
        [2] => 139,tcp
        [3] => 22,tcp
        [4] => 3389,tcp
        [5] => 137,udp
    )

[192.168.4.144] => Array
    (
        [0] => 137,udp
    )

[192.168.4.148] => Array
    (
        [0] => 137,udp
    )

[192.168.4.149] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.152] => Array
    (
        [0] => 137,udp
    )

[192.168.4.153] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.155] => Array
    (
        [0] => 137,udp
    )

[192.168.4.165] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.21] => Array
    (
        [0] => 23,tcp
        [1] => 443,tcp
        [2] => 22,tcp
        [3] => 161,udp
    )

[192.168.4.5] => Array
    (
        [0] => 23,tcp
        [1] => 22,tcp
        [2] => 161,udp
    )

[192.168.4.8] => Array
    (
        [0] => 23,tcp
        [1] => 443,tcp
        [2] => 22,tcp
        [3] => 161,udp
    )

[192.168.4.84] => Array
    (
        [0] => 80,tcp
        [1] => 23,tcp
        [2] => 161,udp
    )

[192.168.4.85] => Array
    (
        [0] => 443,tcp
        [1] => 445,tcp
        [2] => 139,tcp
        [3] => 22,tcp
        [4] => 137,udp
    )

[192.168.4.87] => Array
    (
        [0] => 137,udp
    )

[192.168.4.88] => Array
    (
        [0] => 139,tcp
        [1] => 137,udp
    )

[192.168.4.89] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.90] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 137,udp
    )

[192.168.4.91] => Array
    (
        [0] => 445,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.99] => Array
    (
        [0] => 137,udp
    )

)[/code]

SORT_NUMERIC gives me this:

[code]
Array
(
[192.168.4.153] => Array
(
[0] => 23,tcp
)

[192.168.4.132] => Array
    (
        [0] => 445,tcp
        [1] => 3389,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.89] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.99] => Array
    (
        [0] => 137,udp
    )

[192.168.4.110] => Array
    (
        [0] => 137,udp
    )

[192.168.4.115] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.90] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 137,udp
    )

[192.168.4.136] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 137,udp
    )

[192.168.4.131] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.107] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.112] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.129] => Array
    (
        [0] => 137,udp
    )

[192.168.4.137] => Array
    (
        [0] => 137,udp
    )

[192.168.4.155] => Array
    (
        [0] => 137,udp
    )

[192.168.4.87] => Array
    (
        [0] => 137,udp
    )

[192.168.4.142] => Array
    (
        [0] => 137,udp
    )

[192.168.4.152] => Array
    (
        [0] => 137,udp
    )

[192.168.4.148] => Array
    (
        [0] => 137,udp
    )

[192.168.4.141] => Array
    (
        [0] => 137,udp
    )

[192.168.4.133] => Array
    (
        [0] => 137,udp
    )

[192.168.4.118] => Array
    (
        [0] => 137,udp
    )

[192.168.4.123] => Array
    (
        [0] => 137,udp
    )

[192.168.4.144] => Array
    (
        [0] => 137,udp
    )

[192.168.4.149] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.116] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.102] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
    )

[192.168.4.85] => Array
    (
        [0] => 139,tcp
        [1] => 443,tcp
        [2] => 22,tcp
        [3] => 445,tcp
        [4] => 137,udp
    )

[192.168.4.105] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
        [2] => 22,tcp
    )

[192.168.4.124] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
    )

[192.168.4.130] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
        [2] => 21,tcp
        [3] => 22,tcp
        [4] => 23,tcp
        [5] => 137,udp
    )

[192.168.4.5] => Array
    (
        [0] => 22,tcp
        [1] => 23,tcp
        [2] => 161,udp
    )

[192.168.4.10] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.1] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
        [2] => 22,tcp
        [3] => 23,tcp
        [4] => 161,udp
    )

[192.168.4.8] => Array
    (
        [0] => 443,tcp
        [1] => 22,tcp
        [2] => 23,tcp
        [3] => 161,udp
    )

[192.168.4.21] => Array
    (
        [0] => 443,tcp
        [1] => 22,tcp
        [2] => 23,tcp
        [3] => 161,udp
    )

[192.168.4.84] => Array
    (
        [0] => 80,tcp
        [1] => 23,tcp
        [2] => 161,udp
    )

[192.168.4.114] => Array
    (
        [0] => 80,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.88] => Array
    (
        [0] => 139,tcp
        [1] => 137,udp
    )

[192.168.4.135] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.143] => Array
    (
        [0] => 139,tcp
        [1] => 21,tcp
        [2] => 22,tcp
        [3] => 445,tcp
        [4] => 3389,tcp
        [5] => 137,udp
    )

[192.168.4.165] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.120] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.100] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.117] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.138] => Array
    (
        [0] => 80,tcp
        [1] => 139,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.113] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.91] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.140] => Array
    (
        [0] => 80,tcp
        [1] => 23,tcp
    )

[192.168.4.82] => Array
    (
        [0] => 80,tcp
    )

)[/code]

What am I doing wrong? Thanks in advance!

SORT_STRING gives me this:

[code]
Array
(
[192.168.4.1] => Array
(
[0] => 80,tcp
[1] => 22,tcp
[2] => 23,tcp
[3] => 443,tcp
[4] => 161,udp
)

[192.168.4.10] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.100] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.102] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
    )

[192.168.4.105] => Array
    (
        [0] => 80,tcp
        [1] => 22,tcp
        [2] => 443,tcp
    )

[192.168.4.107] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.110] => Array
    (
        [0] => 137,udp
    )

[192.168.4.112] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.113] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.114] => Array
    (
        [0] => 80,tcp
        [1] => 139,tcp
        [2] => 3389,tcp
        [3] => 137,udp
    )

[192.168.4.115] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.116] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.117] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.118] => Array
    (
        [0] => 137,udp
    )

[192.168.4.119] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.120] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.123] => Array
    (
        [0] => 137,udp
    )

[192.168.4.124] => Array
    (
        [0] => 80,tcp
        [1] => 443,tcp
    )

[192.168.4.129] => Array
    (
        [0] => 137,udp
    )

[192.168.4.130] => Array
    (
        [0] => 80,tcp
        [1] => 22,tcp
        [2] => 21,tcp
        [3] => 23,tcp
        [4] => 443,tcp
        [5] => 137,udp
    )

[192.168.4.131] => Array
    (
        [0] => 445,tcp
        [1] => 3389,tcp
        [2] => 139,tcp
        [3] => 137,udp
    )

[192.168.4.132] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.133] => Array
    (
        [0] => 137,udp
    )

[192.168.4.134] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 137,udp
    )

[192.168.4.135] => Array
    (
        [0] => 80,tcp
        [1] => 445,tcp
        [2] => 443,tcp
        [3] => 137,udp
    )

[192.168.4.136] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 137,udp
    )

[192.168.4.137] => Array
    (
        [0] => 137,udp
    )

[192.168.4.138] => Array
    (
        [0] => 80,tcp
        [1] => 139,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.140] => Array
    (
        [0] => 80,tcp
        [1] => 23,tcp
    )

[192.168.4.141] => Array
    (
        [0] => 137,udp
    )

[192.168.4.142] => Array
    (
        [0] => 137,udp
    )

[192.168.4.143] => Array
    (
        [0] => 139,tcp
        [1] => 22,tcp
        [2] => 21,tcp
        [3] => 3389,tcp
        [4] => 445,tcp
        [5] => 137,udp
    )

[192.168.4.144] => Array
    (
        [0] => 137,udp
    )

[192.168.4.148] => Array
    (
        [0] => 137,udp
    )

[192.168.4.149] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.152] => Array
    (
        [0] => 137,udp
    )

[192.168.4.153] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.155] => Array
    (
        [0] => 137,udp
    )

[192.168.4.165] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 137,udp
    )

[192.168.4.21] => Array
    (
        [0] => 22,tcp
        [1] => 23,tcp
        [2] => 443,tcp
        [3] => 161,udp
    )

[192.168.4.5] => Array
    (
        [0] => 22,tcp
        [1] => 23,tcp
        [2] => 161,udp
    )

[192.168.4.8] => Array
    (
        [0] => 22,tcp
        [1] => 23,tcp
        [2] => 443,tcp
        [3] => 161,udp
    )

[192.168.4.82] => Array
    (
        [0] => 80,tcp
    )

[192.168.4.85] => Array
    (
        [0] => 139,tcp
        [1] => 22,tcp
        [2] => 445,tcp
        [3] => 443,tcp
        [4] => 137,udp
    )

[192.168.4.87] => Array
    (
        [0] => 137,udp
    )

[192.168.4.88] => Array
    (
        [0] => 139,tcp
        [1] => 137,udp
    )

[192.168.4.89] => Array
    (
        [0] => 23,tcp
    )

[192.168.4.90] => Array
    (
        [0] => 139,tcp
        [1] => 445,tcp
        [2] => 137,udp
    )

[192.168.4.91] => Array
    (
        [0] => 139,tcp
        [1] => 3389,tcp
        [2] => 445,tcp
        [3] => 137,udp
    )

[192.168.4.99] => Array
    (
        [0] => 137,udp
    )

)[/code]

Sponsor our Newsletter | Privacy Policy | Terms of Service