繁体   English   中英

根据数组中特定键的值对多维数组进行排序

[英]Sorting multi-dimensional array based on value of specific key in array

我有一个像这样的数组:

    $array[] = array(
        "name" => "sample",
        "image" => "sample.jpg",
        "header" => "sampleDelights",
        "intro_copy" => ""
    );
    $array[] = array(
        "name" => "lwmag",
        "image" => "lwmag.jpg",
        "header" => "LW Mag",
        "intro_copy" => ""
    );

我想根据PHP键“ header”中的字母顺序对该数组进行排序。 我已经尝试过usort并搜索了内置函数,但是找不到一个(或看起来过去了)。 一个PHP函数可能吗?

看看“ ksort”

这对于按键排列数组非常有用。

<?php
$sample = array("d" => "maximum", "a" => "minimum", "c" => "mid")
ksort($sample);
foreach ($sample as $key => $val) {
echo "$key = $val \n";
}
?>

那会显示

a = minimum
c = mid
d = maximum

希望那是你所追求的。

资料来源: PHP手册

php.net看这个功能

function array_sort($array, $on, $order=SORT_ASC)
{
    $new_array = array();
    $sortable_array = array();

    if (count($array) > 0) {
        foreach ($array as $k => $v) {
            if (is_array($v)) {
                foreach ($v as $k2 => $v2) {
                    if ($k2 == $on) {
                        $sortable_array[$k] = $v2;
                    }
                }
            } else {
                $sortable_array[$k] = $v;
            }
        }

        switch ($order) {
            case SORT_ASC:
                asort($sortable_array);
            break;
            case SORT_DESC:
                arsort($sortable_array);
            break;
        }

        foreach ($sortable_array as $k => $v) {
            $new_array[$k] = $array[$k];
        }
    }

    return $new_array;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM