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']);
});