Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组内多排序_Php_Arrays_Sorting - Fatal编程技术网

Php 数组内多排序

Php 数组内多排序,php,arrays,sorting,Php,Arrays,Sorting,这是我的多重排序代码 但是,我如何为单个列执行此操作 到目前为止,我所做的是 PHP代码: <?php $a1=array("Cat","Alpha","two"); $a1=array("Cat","Beta","two"); $a1=array("Pluto","Beta","two"); $a1=array("Pluto","Alpha","two"); array_multisort($a1[0], SORT_ASC, SORT_STRING, $a1[1], SORT_NUMER

这是我的多重排序代码

但是,我如何为单个列执行此操作

到目前为止,我所做的是

PHP代码:

<?php
$a1=array("Cat","Alpha","two");
$a1=array("Cat","Beta","two");
$a1=array("Pluto","Beta","two");
$a1=array("Pluto","Alpha","two");
array_multisort($a1[0], SORT_ASC, SORT_STRING, $a1[1], SORT_NUMERIC, SORT_DESC);
$json[] = $a1;
$final=array("response"=>$a1);
echo json_encode($final);
?>
但是,我想显示

第一列$a1为Asc,第二列$a1为Desc

所以结果应该是

Col A  Col B, Col C
Cat,   Alpha  two
Cat,   Beta   two
Pluto, Alpha  two
Plugo, Beta   two
我该怎么做?


<?php
$a1=array("Cat","Alpha","two");
$a1=array("Cat","Beta","two");
$a1=array("Pluto","Beta","two");
$a1=array("Pluto","Alpha","two");
array_multisort($a1[0], SORT_ASC, SORT_STRING, $a1[1], SORT_NUMERIC, SORT_DESC);
$json[] = $a1;
$final=array("response"=>$a1);
echo json_encode($final);
?>
<?php
$a1=array("Dog","zb","Cat");
$a2=array("Pluto","Fido","Missy");

array_multisort($a1,SORT_ASC);
array_multisort($a2,SORT_DESC);
print_r($a1);
print_r($a2);
?>
我想您应该使用它来构建自己的自定义排序算法:

<?php
$array = array(
    array("Cat","Alpha","two"),
    array("Cat","Beta","two"),
    array("Pluto","Beta","two"),
    array("Pluto","Alpha","two"),
);

function my_custom_sort($a, $b)
{
    // first sort ASC by first column
    if ($a[0] == $b[0]) {
        // then sort ASC by second column
        if ($a[1] == $b[1]) {
            return 0;
        } else {
            return $a[1] < $b[1] ? -1 : 1;
        }
    } else {
        return $a[0] < $b[0] ? -1 : 1;
    }
}

usort($array, 'my_custom_sort');
var_dump($array);

制作一个更有用的数组结构,如
数组(数组('type'=>'Dog','name'=>'Pluto'),…)
,然后查看。感谢链接,但是在数组中我找不到足够的训练:(我更新了我的问题。你能看一下吗?谢谢,但是数组结果是,Cat,Beta,two,Cat,Alpha,two