三维数组php中的多端口

三维数组php中的多端口,php,multidimensional-array,sorting,Php,Multidimensional Array,Sorting,我有这样的多维数组: array(1) { ["category_content"]=> array(3) { [0]=> array(5) { ["content_id"]=> string(1) "2" ["content_title"]=> string(6) "coolas" ["grade"]=> string(1) "1" ["content_or

我有这样的多维数组:

array(1) {
  ["category_content"]=>
  array(3) {
    [0]=>
    array(5) {
      ["content_id"]=>
      string(1) "2"
      ["content_title"]=>
      string(6) "coolas"
      ["grade"]=>
      string(1) "1"
      ["content_order"]=>
      string(1) "1"
      ["kind"]=>
      string(7) "article"
    }
    [1]=>
    array(5) {
      ["content_id"]=>
      string(1) "1"
      ["content_title"]=>
      string(16) "Zango Restaurant"
      ["grade"]=>
      string(1) "2"
      ["content_order"]=>
      string(1) "2"
      ["kind"]=>
      string(8) "business"
    }
  }
}

我想按内容顺序排序。如何使用multisort对该数组进行排序?如何为排序提供标志?提前感谢:这将帮助您解决问题

<?php
function CustomSort (&$array, $key)
{
    $sorter=array();
    $ret=array();

    reset($array);

    foreach ($array as $ii => $va)
    {
        $sorter[$ii]=$va[$key];
    }

    asort($sorter);

    foreach ($sorter as $ii => $va)
    {
        $ret[$ii]=$array[$ii];
    }

    $array=$ret;
}

CustomSort($your_array,"content_id");

?>

这将帮助你们解决这个问题

<?php
function CustomSort (&$array, $key)
{
    $sorter=array();
    $ret=array();

    reset($array);

    foreach ($array as $ii => $va)
    {
        $sorter[$ii]=$va[$key];
    }

    asort($sorter);

    foreach ($sorter as $ii => $va)
    {
        $ret[$ii]=$array[$ii];
    }

    $array=$ret;
}

CustomSort($your_array,"content_id");

?>

例如#3


例如#3


您也可以使用。例如:


您也可以使用。例如:



我没有在php上写过,但是看起来很容易。我没有在php上写过,但是看起来很容易
<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);

foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

// Sort the data with volume descending, edition ascending
// Add $data as the last parameter, to sort by the common key
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
<?php
$array = array (
    '1' => array('sortBy' => 10),
    '2' => array('sortBy' => 4),
    '3' => array('sortBy' => 50),
    '4' => array('sortBy' => 8),
    '5' => array('sortBy' => 2),
    '6' => array('sortBy' => 100),
);

function comp($a, $b) {
    return $a['sortBy'] > $b['sortBy'];
}

usort($array, comp);
?>
$category_content_array = $data_array; // your actual data array
$content_order_array = array();  // new array as a column to sort collector

foreach ($category_content_array as $content) {
$content_order_array[] = $content['content_order'];
}

array_multisort($content_order_array, SORT_ASC, $category_content_array);