Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 需要按标题值按ASC或DESC顺序对数组排序_Php_Arrays_Sorting - Fatal编程技术网

Php 需要按标题值按ASC或DESC顺序对数组排序

Php 需要按标题值按ASC或DESC顺序对数组排序,php,arrays,sorting,Php,Arrays,Sorting,下面是我的数组 Array ( [0] => Array ( [topic_title] => gff [title] => gff ) [1] => Array ( [topic_title] => new toipic [title] => new toipic ) [2] => Array ( [topic

下面是我的数组

     Array
   (
    [0] => Array
    (
        [topic_title] => gff
        [title] => gff
    )
[1] => Array
    (
        [topic_title] => new toipic
        [title] => new toipic
    )
[2] => Array
    (
        [topic_title] => Welcome!
        [title] =>Welcome!
    )
[3] => Array
    (
        [entry_title] => sdasdad
        [title] => sdasdad
    )
[4] => Array
    (
        [event_title] => red
        [title] => red
    )
[5] => Array
    (
        [event_title] => sa
        [title] => sa          
    )
[6] => Array
    (
        [event_title] => sadasd
        [title] => sadasd
    )
[7] => Array
    (
        [event_title] => Test Event
        [title] => Test Event
    )
)
我希望输出如下

   Array(
[0] => Array
        (
            [event_title] => Test Event
            [title] => Test Event
        )
 [1] => Array
        (
            [event_title] => Welcome!
            [title] => Welcome!
        )
    [2] => Array
        (
            [event_title] => sa
            [title] => sa
        )
    [3] => Array
        (
            [entry_title] => sdasdad
            [title] => sdasdad
        )    
    [4] => Array
        (
            [event_title] => sadasd
            [title] => sadasd
        )
    [5] => Array
        (
            [event_title] => red
            [title] => red
        )
    [6] => Array
        (
            [topic_title] => new toipic
            [title] => new toipic
        )     
    [7] => Array
        (
            [topic_title] => gff
            [title] => gff
        )
)
这是PHP5.6中的打印代码

我使用了usort()函数,但没有得到必需的函数。我无法按数组的标题键按同意或降序对数组进行排序

我从不同的查询中得到这个数组,然后我将它合并到一个数组中,但无法按标题值对其进行排序,这将起到以下作用:

usort($array, function($x, $y) {
    return strcasecmp($x['title'], $y['title']);
});

您可以使用array_multisort()来实现所需的结果

例如

试试这个:

$array = Array ( Array("topic_title" => "aatoipic","title" => "new toipic"),Array("event_title" => "Test Event","title" => "Test Event"),Array("topic_title" => "Welcome!", "title" => "Welcome!"),Array("entry_title" => "sdasdad","title" => "p",),Array("event_title" => "red","title" => "k",),Array("event_title" => "sa","title" => "sa"),Array("event_title" => "sadasd","title" => "d"),Array("topic_title" => "gff", "title" => "gff"),Array( "topic_title" => "new toipic","title" => "h"));

    $arr  = $array;
    $sort = array();
    foreach($arr as $k=>$v) {
        $sort['title'][$k] = $v['title'];
    }

    array_multisort($sort['title'], SORT_ASC, $arr);

    echo "<pre>";
    print_r($arr);

您需要将
usort
用于:


我从不同的查询中得到
。。。如果这个数组/数据的源是SQL数据库,那么我认为我们应该在数据库中进行排序,而不是在PHP代码中。请包括相关查询。
如何才能“欢迎”
'Test Event'
之后,但是
'red'
'sa'
之后?@Nick实际上他合并了来自两个查询的两个数组,并将它们按排序方式放入他想要的输出中。这就是为什么它是confusing@AlivetoDie特别是由于无法看到一个查询的结束和下一个查询的开始…首先使用usort()添加代码并编辑问题以判断失败的位置我使用此代码,但仍然无法获得正确的输出数组
([0]=>sdasad[1]=>sadasd[2]=>sa[3]=>red[4]=>新toipic[5]=>新toipic[6]=>新toipic[7]=>gff[8]=>新toipic[9]=>欢迎![10]=>测试事件)
这不在order@Harsh显示查询代码以及将查询结果分配给数组的代码。我使用
foreach($key=>post as$row){$title[$key]=$row['title'];}数组\u multisort($title,SORT\u DESC,$post);回声“;印刷品(标题)
@Harsh为什么要打印
$title
?使用
array\u multisort
后,您的主数组
$post
将按降序排列所有标题。我尝试打印$post,但仍然无法按标题(字母)排序。我的数组是
$post=array(数组(“主题”=>“aatopic”,“标题”=>“新topic”),数组(“事件”=>“测试事件”,“标题”=>“测试事件”)、数组(“主题标题”=>“欢迎!”、“标题”=>“欢迎!”、数组(“条目标题”=>“SDSDAD”、“标题”=>“p”)、数组(“事件标题”=>“红色”、“标题”=>“k”)、数组(“事件标题”=>“sa”、“标题”=>“sa”)、数组(“事件标题”=>“sadasd”、“标题”=>“d”)、数组(“主题标题”=>“gff”、“标题”=>“gff”)、数组(“主题标题”=>“新toipic”、”标题“=>“h”);
让我检查一下first@Harsh除非您显示查询代码以及如何创建数组,否则我不会使用上面的数组,但不会使用排序数组,我的数组如下`$arr=array(array(“topic”=>“aatoipic”,“title”=>“new toipic”)、array(“event”=>“Test event”,“title”=>“Test event”)、array(“主题标题“=>“欢迎!”、“标题”=>“欢迎!”、数组(“条目标题”=>“SDADSAD”、“标题”=>“p”)、数组(“事件标题”=>“红色”、“标题”=>“k”)、数组(“事件标题”=>“sa”、“标题”=>“sa”)、数组(“事件标题”=>“sadasd”、“标题”=>“d”)、数组(“主题标题”=>“gff”、“标题”=>“gff”)、数组(“主题标题”=>“新toipic”、“标题”=>“h”)“但是你的输出不是按字母顺序排列的,我要按字母顺序排列标题
$array = Array ( Array("topic_title" => "aatoipic","title" => "new toipic"),Array("event_title" => "Test Event","title" => "Test Event"),Array("topic_title" => "Welcome!", "title" => "Welcome!"),Array("entry_title" => "sdasdad","title" => "p",),Array("event_title" => "red","title" => "k",),Array("event_title" => "sa","title" => "sa"),Array("event_title" => "sadasd","title" => "d"),Array("topic_title" => "gff", "title" => "gff"),Array( "topic_title" => "new toipic","title" => "h"));

    $arr  = $array;
    $sort = array();
    foreach($arr as $k=>$v) {
        $sort['title'][$k] = $v['title'];
    }

    array_multisort($sort['title'], SORT_ASC, $arr);

    echo "<pre>";
    print_r($arr);
Array ( [0] => Array ( [event_title] => Test Event [title] => Test Event ) [1] => Array ( [topic_title] => Welcome! [title] => Welcome! ) [2] => Array ( [event_title] => sadasd [title] => d ) [3] => Array ( [topic_title] => gff [title] => gff ) [4] => Array ( [topic_title] => new toipic [title] => h ) [5] => Array ( [event_title] => red [title] => k ) [6] => Array ( [topic_title] => aatoipic [title] => new toipic ) [7] => Array ( [entry_title] => sdasdad [title] => p ) [8] => Array ( [event_title] => sa [title] => sa ) ) 
function querySort ($x, $y) {
     return strcasecmp($x['title'], $y['title']);
}

usort($myArray, 'querySort');