PHP,sort,sort_flags

Bla*_*ext 4 php sorting flags

我正在PHP手册的sort_flags这个页面上学习.

我不明白这些标志代表的区别.

只有6个标志,有人可以帮我理解它们之间的区别.也许有一些例子.我会非常感激.

Zbi*_*iew 7

用于测试的数组:

$toSort = array(2, 1, "img1", "img2", "img10", 1.5, "3.14", "2.72");
Run Code Online (Sandbox Code Playgroud)

请注意,这3.14 & 2.72是字符串.

使用SORT_REGULARflag(通常比较项目):

Array
(
    [0] => 2.72
    [1] => 3.14
    [2] => img1
    [3] => img10
    [4] => img2
    [5] => 1
    [6] => 1.5
    [7] => 2
)
Run Code Online (Sandbox Code Playgroud)

使用SORT_NUMERICflag(以数字方式比较项目,因此3.14按数字排序而不是字符串):

Array
(
    [0] => img10
    [1] => img1
    [2] => img2
    [3] => 1
    [4] => 1.5
    [5] => 2
    [6] => 2.72
    [7] => 3.14
)
Run Code Online (Sandbox Code Playgroud)

使用SORT_STRINGflag(SORT_LOCALE_STRING工作方式类似,但取决于当前的语言环境,所有值都被视为字符串):

Array
(
    [0] => 1
    [1] => 1.5
    [2] => 2
    [3] => 2.72
    [4] => 3.14
    [5] => img1
    [6] => img10
    [7] => img2
)
Run Code Online (Sandbox Code Playgroud)

使用SORT_NATURALflag(注意img*字符串的顺序,很自然):

Array
(
    [0] => 1
    [1] => 1.5
    [2] => 2
    [3] => 2.72
    [4] => 3.14
    [5] => img1
    [6] => img2
    [7] => img10
)
Run Code Online (Sandbox Code Playgroud)

SORT_FLAG_CASE可以结合使用SORT_STRINGSORT_NATURAL进行不区分大小写的排序,例如:

// works like SORT_NATURAL but is case-insensitive
sort($toSort, SORT_NATURAL | SORT_FLAG_CASE);
Run Code Online (Sandbox Code Playgroud)