Php 如何为多个键排序多维数组?

Php 如何为多个键排序多维数组?,php,Php,这是代码: How order an array so structured for [name] and to parity of [name] for [age] ? [0] => Array ( [name] => Mary [age] => 32 ) [1] => Array ( [name] => Mary

这是代码:

How order an array so structured for [name] and to parity of [name] for [age] ?

    [0] => Array
        (
            [name] => Mary
            [age] => 32
        )

    [1] => Array
        (
            [name] => Mary
            [age] => 31
        )

    [2] => Array
        (
            [name] => Anna
            [age] => 30
        )

Output: 

Name | Age
----------
Anna | 30
Mary | 31
Mary | 32
您需要使用:

使用用户定义的比较函数按值对数组排序

示例4

function sort(&$array) {
  function build_sorter($key) {
    return function ($a, $b) use ($key) { 
      return strnatcmp($a[$key], $b[$key]); 
    };
  }
  usort($array, build_sorter(["name"]));            
  usort($array, build_sorter(["age"]));         
}

您可以使用此功能

<?php
  $array[0] = array('key_a' => 'z', 'key_b' => 'c');
  $array[1] = array('key_a' => 'x', 'key_b' => 'b');
  $array[2] = array('key_a' => 'y', 'key_b' => 'a');

  function build_sorter($key) {
   return function ($a, $b) use ($key) {
       return strnatcmp($a[$key], $b[$key]);
   };
  }

  usort($array, build_sorter('key_b'));

  foreach ($array as $item) {
     echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
  }

?>


演示链接:

请更加具体,并显示您的预期输出。另外,显示您迄今为止尝试过的代码。您能粘贴代码吗?您想按名称和年龄对数组进行排序吗?是的,所以。我也用代码更新了帖子。请检查我的回答在这一行返回“非法偏移类型”:“返回strnatcmp($a[$key],$b[$key]);”。数组的结构如上所示。
<?php 
function Func_Sort($arr, $index) {
    $b = array();
    $c = array();
    foreach ($arr as $key => $value) {
        $b[$key] = $value[$index];
    }

    asort($b);

    foreach ($b as $key => $value) {
        $c[] = $arr[$key];
    }

    return $c;
}
$activities = array (
    '1' => array(
        'name' => 'Mary',
        'age' => 32,

    ),
    '2' => array(
        'name' => 'Mary',
        'age' => 31,
        ),
    '3' => array(
        'name' => 'anna',
        'age' => 30
    ), 
);
$sorted_act = Func_Sort($activities, 'age');
echo "<pre>";
print_r($sorted_act);

?>