三维数组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);