以下是代码:
var_dump($images);
array(2) {
["main_product_image"]=> array(1) { ["bb2018.jpg"]=> string(63) "...018.jpg" }
["XIMAGE"]=> array(1) { ["bb2018x.jpg"]=> string(64) "...18x.jpg" }
}
krsort($images, SORT_STRING | SORT_FLAG_CASE) ;
var_dump($images);
array(2) {
["main_product_image"]=> array(1) { ["bb2018.jpg"]=> string(63) "...018.jpg" }
["XIMAGE"]=> array(1) { ["bb2018x.jpg"]=> string(64) "...018x.jpg" } }
你可以看到krsort没有效果。为什么? 编辑:在krsort()之前我没有设置()数组中的一些元素。这可能与此有关吗?
答案 0 :(得分:1)
SORT_FLAG_CASE
支持仅在PHP since version 5.4.0中出现。
如果没有它,密钥将以区分大小写的方式进行反转,这就是'XIMAGE'
将遵循'main_image'
('X'
> 'm'
)的原因。
请注意,如果您尝试在PHP版本上使用该标志,则会通知PHP。 5.4(因为那里没有定义常数)。
答案 1 :(得分:0)
ksort()不是递归的。
尝试使用ksort($images['main_product_image']
,然后ksort($images['XIMAGE'])
。
答案 2 :(得分:0)
$images = array(
"main_product_image" =>
array(
"bb2018.jpg"=> "...018.jpg"
),
"XIMAGE"=>
array(
"bb2018x.jpg" => "...18x.jpg"
)
) ;
krsort($images, SORT_STRING | SORT_FLAG_CASE);
var_dump($images);
输出:
array(2) { 'XIMAGE' => array(1) { 'bb2018x.jpg' => string(10) "...18x.jpg" } 'main_product_image' => array(1) { 'bb2018.jpg' => string(10) "...018.jpg" } }
一切正常。