这是代码:
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() 之前,我正在取消设置()数组中的一些元素。这可能与此有关吗?
对SORT_FLAG_CASE
的支持仅在 PHP 中出现于 5.4.0 版本。
没有它,键将以区分大小写的方式反转排序,这就是为什么'XIMAGE'
将遵循'main_image'
(如'X'
> 'm'
)。
请注意,如果您尝试在 PHP 版本 5.4
ksort() 不是递归的。
尝试使用ksort($images['main_product_image']
然后ksort($images['XIMAGE'])
。
$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" } }
它工作正常。