【问题标题】:Multidimensional arrays sorting by inner Multidimensional arrays key多维数组按内部多维数组键排序
【发布时间】:2017-05-29 19:21:26
【问题描述】:

使用时间戳对数组进行排序的最简单方法是什么?例如;数组键 19 需要在排序后是第一个,因为键 1494238836 是内部数组中最高的。

    $testArray = array (
        17 =>
              array (
                  1490011261 =>
                    (object)(array('test15')),
              ),
         1 =>
          array (
              1491898801 =>
                (object)(array('test14')),
          ),
        25 =>
        array (
            1491474454 =>
                (object)(array('test1')),
            1491474657 =>
                (object)(array('test5'))
        ),
        19 =>
            array (
                1494238836 =>
                (object)(array('test1')),
        ),


    );

【问题讨论】:

  • 对象来自哪里?
  • 你想要的输出是什么?
  • @Doug 我从具有客户类对象的多维数组的转储中创建了这个。在这种情况下,对象无关紧要,但持有对象的键(时间戳)决定了外部数组键的位置
  • @Bhaskar 数组需要按照 19,1,25,17 这个排序顺序
  • @CharlesPhiri 您的代码正在运行还是卡在某个地方?

标签: php arrays sorting multidimensional-array


【解决方案1】:

所以我做了这样的事情:

    $sortArray = array();
    foreach ($testArray as $key =>$value){
        $maxKey = max(array_keys($value));
        $sortArray[$maxKey] = $key;
    }
    krsort($sortArray);
    echo "<pre>";
    var_export($sortArray);
    echo "</pre>";
    echo "<br/>";
    echo "<br/>";

    //Testing the theory
    foreach($sortArray as $key =>$value)
    {
        echo "<br/> Main Key:";
        echo $value;
        echo "<pre>";
        var_export($testArray[$value]);
        echo "</pre>";
        echo "<br/>";
        echo "___________________________";

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2017-01-26
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多