按内部数组的键对 PHP 中的多维数组进行排序



我想按时间戳"1357894278"对职位进行排序

<?php
foreach( $jobs as &$job )
{
    $cj_date[] =  array( strtotime($job->date) => array( $job->title ));
}
foreach ($results['results'] as $result)
{
    $in_date[] = array ( strtotime($result['date']) => array ($result['jobtitle']) );
}
$ans[] = array_merge($cj_date,$in_date);
foreach($ans as $a)  
{
    ksort($a);
    print_r($a);
}
?>

通过运行这个脚本,我得到了如下输出:

Array( [0] => Array
              ( [1352796106] => Array 
                                ( [0] => JobTitle_1 )
              )
       [1] => Array
              ( [1352745201] => Array 
                                ( [0] => JobTitle_2 )
              )
       [2] => Array
              ( [1357894278] => Array 
                                ( [0] => JobTitle_3 )
              )
      )

那么如何按1352796106、1352745201 1357894278对职称进行排序谢谢!等待帮助

试试这个:

function compare($a, $b) {
    $ak = array_keys($a);
    $bk = array_keys($b);
    return ($ak[0] < $bk[0]) ? -1 : 1;
}
usort($ans, "compare");
var_dump($ans);

usort按自定义比较函数排序。

不久

前我遇到了类似的问题。我的结构要复杂得多。我最终创建了另一个数组作为我的"map",并使用它进行排序/索引。

新的map数组是一个非常简单的结构,只包含有关我的其他结构的必要信息,刚好有足够的信息来快速索引和快速排序。

我相信可能还有其他解决方案,但这对我有用,因为我有非常大的复杂结构,如果我没有额外的地图结构,迭代起来会更昂贵。这一切都取决于您计算您的时间成本,并根据数据类型的复杂性和大小找出它是否对您来说很昂贵。

相关内容

  • 没有找到相关文章

最新更新