首页 > 解决方案 > 无法排序数组索引php

问题描述

我有一个这样的数组,

输出:

 Array
    (
        [3] => stdClass Object
            (
                [id] => 11591
                [title] => abc
            )

        [2] => stdClass Object
            (
                [id] => 11592
                [title] => xyz
            )

        [0] => stdClass Object
            (
                [id] => 11589
                [title] => abg
            )

        [1] => stdClass Object
            (
                [id] => 11590
                [title] => asw
            )

    )

代码点火器代码:

foreach($results as $rowData)
{
    if($rowData->title=='xyz')
    {
        $eventperDayArray['0']=$rowData;
    }
    else if($rowData->title=='asw')
    {
        $eventperDayArray['1']=$rowData;
    }
    else if($rowData->title=='abc')
    {
        $eventperDayArray['2']=$rowData;
    }
    else if($rowData->title=='abg')
    {
        $eventperDayArray['3']=$rowData;
    }
    if($i==5)
    {
        print_r($eventperDayArray);
        die();
        break;
    }
    $i++;
}

我正在从数组中搜索数据并想要对其进行排序。现在,当 我得到类似这样的输出时,我想对其进行排序,以使 0 索引应该排在第一位,依此类推print_r($eventperDayArray);
我用过sortksort但它没有打印出来1

标签: phpcodeignitercodeigniter-3

解决方案


ksort()确实按数组上的键排序。

<?php

$arr = [];
$o = new stdclass();
$o->id = 11591;
$o->title = 'abc';
$arr[3] = $o;
$o = new stdclass();
$o->id = 11592;
$o->title = 'xyz';
$arr[2] = $o;
$o = new stdclass();
$o->id = 11589;
$o->title = 'abg';
$arr[0] = $o;
$o = new stdclass();
$o->id = 11590;
$o->title = 'asw';
$arr[1] = $o;

ksort($arr);
print_r($arr);

演示: https ://3v4l.org/hkLCc


推荐阅读