PHP按键对数组进行排序';值';


PHP sort array by key 'value'

我有下面的代码,它显示了我想要的结果。我正试图让它根据下面输出的键"value"进行排序。所以Eric,Eric 2,Eric 3

$resultnames的输出示例为:

Array
(
[0] => Array
    (
        [Eric 2] => Asdf
    )
[1] => Array
    (
        [Eric] => Asdf
    )
[2] => Array
    (
        [Eric 3] => Asdf
    )
)

因此,键是名字,该键的值是姓氏。我正在尝试按名字对数组进行排序

    foreach (array_chunk($uvugroups, 6, true) as $uvugroup)
    {       
        foreach ($uvugroup as $uvustate) {
            echo "<h4>Registrants</h4>";
            $fnames = explode( '|', $uvustate['fname'] );
            $lnames = explode( '|', $uvustate['lname'] );
            $resultnames = array();
            foreach ($fnames as $i => $key) {
              $resultnames[] = array($key => $lnames[$i]);
            }
            foreach ($resultnames as $resultname) {         
            foreach ($resultname as $fkey => $lkey) {
                echo "<ul>";
                echo "<li>" . $fkey . " " . substr($lkey,0,1) . ".</li>";
                echo "</ul>";
            }
            }               
        }
    }

我试图在代码的不同位置使用ksort,但似乎没有效果。

这有点困难,因为问题中没有定义预期的输出,但将此代码作为第二个foreach的内容,它应该会生成一个按名字排序的列表。

$fnames = explode( '|', $uvustate['fname'] );
$lnames = explode( '|', $uvustate['lname'] );
$resultnames = array_combine($fnames, $lnames);
ksort($resultnames);
echo "<ul>";
foreach ($resultnames as $fkey => $lkey) {
    echo "<li>" . $fkey . " " . substr($lkey,0,1) . ".</li>";
}
echo "</ul>";