Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Sorting_Multidimensional Array - Fatal编程技术网

PHP排序三维数组

PHP排序三维数组,php,sorting,multidimensional-array,Php,Sorting,Multidimensional Array,我知道这很容易,但我不明白。我在网上找到的答案都是。。。也许对我来说太复杂了 以下是我的典型阵列: array( (int) 0 => array( 'Conversation' => array( 'id' => '1', 'created' => '2012-08-04 00:00:00' ), 'ConversationUser' => array( (int) 0 => array

我知道这很容易,但我不明白。我在网上找到的答案都是。。。也许对我来说太复杂了

以下是我的典型阵列:

array(
(int) 0 => array(
    'Conversation' => array(
        'id' => '1',
        'created' => '2012-08-04 00:00:00'
    ),
    'ConversationUser' => array(
        (int) 0 => array(
            'id' => '1'
        ),
        (int) 1 => array(
            'id' => '2'
        )
    )
),
(int) 1 => array(
    'Conversation' => array(
        'id' => '2',
        'created' => '2012-08-01 00:00:00'
    ),
    'ConversationUser' => array(
        (int) 0 => array(
            'id' => '1'
        ),
        (int) 1 => array(
            'id' => '2'
        )
    )
));
我想用['Conversation']['created']日期、asc或desc对数据进行排序

有简单的答案吗P

另外,我不能使用MYSQL排序,我会逐个检索数据并创建该数组。

您应该查看和函数,它们可以让您自定义数组的排序方式

无论解决方案是简单的还是复杂的,记住爱因斯坦曾经说过的话:事情应该尽可能简单,但决不能比实际情况简单

如果您在这些功能上遇到一些问题,我们可以给您进一步的线索-

您应该查看和函数,它们允许您自定义数组的排序方式

无论解决方案是简单的还是复杂的,记住爱因斯坦曾经说过的话:事情应该尽可能简单,但决不能比实际情况简单

如果您在这些功能上遇到一些问题,我们可以给您进一步的线索-

使用:

使用:

您可以使用来执行此操作:

// $data is your array from the example
// first obtain the rows for sorting
$sortkeys = array();
foreach ($data as $row) {
    $sortkeys[] = $row['Conversation']['created'];
}

// sort $data according to $sortkeys
array_multisort($sortkeys, $data);
var_dump($data);
您可以使用来执行此操作:

// $data is your array from the example
// first obtain the rows for sorting
$sortkeys = array();
foreach ($data as $row) {
    $sortkeys[] = $row['Conversation']['created'];
}

// sort $data according to $sortkeys
array_multisort($sortkeys, $data);
var_dump($data);
您可以使用或来维护索引关联。示例:假设您的数组为$arr:

那将按降序排列。将>更改为您可以使用或来维护索引关联。示例:假设您的数组为$arr:


那将按降序排列。将>更改为您可能需要阅读的内容。您只需编写一个小函数来进行数组访问和日期比较即可。我不能使用MYSQL排序,我一个接一个地检索数据并创建那个数组。这两者并不互相对比。您可以使用MySQL排序并逐个迭代结果来创建数组。请与我们分享您的查询。您可能需要阅读的副本。您只需编写一个小函数来进行数组访问和日期比较即可。我不能使用MYSQL排序,我一个接一个地检索数据并创建那个数组。这两者并不互相对比。您可以使用MySQL排序并逐个迭代结果来创建数组。请与我们分享您的查询。我相信您可以简单地返回$a-$b,甚至完全跳过临时变量。我相信您可以简单地返回$a-$b,甚至完全跳过临时变量。我认为最佳和最普遍的答案我认为最佳和最普遍的答案
usort($arr, function($a, $b) {
    return
    preg_replace('/\D/', '', $b['Conversation']['created'])
    >
    preg_replace('/\D/', '', $a['Conversation']['created']);
});