我写了一个脚本来生成一个数据数组,但现在想要按分数顺序显示.阵列输出如下;
[display_name] => Array
(
[0] => ACT_Web_Designs
[1] => user1_design
[2] => user2_design
)
[proffesion] => Array
(
[0] => Web Developer
[1] => web developer
[2] => Web Developer
)
[score] => Array
(
[0] => 15
[1] => 6
[2] => 15
)
[img] => Array
(
[0] => ./?0000=gif&0001=3fadb8c362ff39f3322909899ff14760&0002=prof_pic
[1] =>
[2] =>
)
Run Code Online (Sandbox Code Playgroud)
所以简而言之,我希望它按照以下方式进行转换;
[display_name] => Array
(
[0] => ACT_Web_Designs
[1] => user2_design
[2] => user1_design
)
[proffesion] => Array
(
[0] => Web …Run Code Online (Sandbox Code Playgroud) 如何对多维数组进行深度排序并保留其键?
$array = [
'2' => [
'title' => 'Flower',
'order' => 3
],
'3' => [
'title' => 'Rock',
'order' => 1
],
'4' => [
'title' => 'Grass',
'order' => 2
]
];
foreach ($array as $key => $row) {
$items[$key] = $row['order'];
}
array_multisort($items, SORT_DESC, $array);
print_r($array);
Run Code Online (Sandbox Code Playgroud)
结果:
Array
(
[0] => Array
(
[title] => Flower
[order] => 3
)
[1] => Array
(
[title] => Grass
[order] => 2
)
[2] => Array
(
[title] …Run Code Online (Sandbox Code Playgroud) 我可以对多维数组进行排序,但不保持数字索引关联.
如何保持数字索引关联?
码:
$waiters[76] = array('weight' => 67, 'specialties' => 1);
$waiters[14] = array('weight' => 41, 'specialties' => 2);
$waiters[58] = array('weight' => 85, 'specialties' => 3);
$waiters[89] = array('weight' => 98, 'specialties' => 4);
$waiters[68] = array('weight' => 86, 'specialties' => 5);
$waiters[31] = array('weight' => 13, 'specialties' => 6);
print_r($waiters);
// Obtain a list of waiters
foreach ($waiters as $id => $waiter) {
$weight[$id] = $waiter['weight'];
$specialties[$id] = $waiter['specialties'];
}
// Sort the data with weight descending, specialties …Run Code Online (Sandbox Code Playgroud) 我正在使用yii框架并使用,CArrayDataProvider因为我的数据提供程序包含 3 个表。但是如果我Sort在这个中使用。
$sort = new CSort;
$sort->defaultOrder = 'created DESC';
$dataProvidermain=new CArrayDataProvider($data, array(
'id'=>'user',
'sort' => $sort,
'pagination'=>array(
'pageSize'=>20,
),
));
Run Code Online (Sandbox Code Playgroud)
它正在抛出错误
致命错误:嵌套级别太深 - 递归依赖?在第 151 行的 /var/www/goalsurf/framework/web/CArrayDataProvider.php
调试后,我知道当 2 个或更多元素的日期相等时,它会抛出此错误。我有三个具有相同日期的实体。2016-02-06 10:10:51. 如果我更改 2 条记录的日期,则它正在工作。试图从过去 2 天解决这个问题。谷歌搜索,但没有解决方案。
请帮帮我。
更新 这是数组格式
[68] => Tasks Object
(
[taskmodel] => 1
[quickacent] => 15
[dailygoal] =>
[weeklygoal] =>
[dailygoal2] =>
[_new:CActiveRecord:private] =>
[_attributes:CActiveRecord:private] => Array
(
[id] => 563
[guid] => 650c7572-3fae-4f9a-a476-8de6a21c329e
[user_id] => …Run Code Online (Sandbox Code Playgroud) 我正在为我正在构建的论坛程序创建搜索功能.有一次,我有一个名为searchResults的数组,它是一个数字,包含'score'作为其维度之一(其他是'timeStarted','authorUID'和'TID')
所以,这个数组现在处于混乱状态,我需要将它组织到$ searchResults [1]将是最高'得分',[2]将具有第二高等等.我在php.net上查看了array_multisort但它在如何运作方面迅速迷失.那么我如何按照数字顺序(重新排列键)对$ searchResults进行排序,以另一个维度'sort'的降序作为排序机制降序?确实没有任何代码可以使用它但是如果你需要一个阵列外观的布局,你可以去:
$searchResults:
[1] - ['timeStarted']
['authorUID']
['score'] <- Need to sort first dimension by this value descending
['TID']
etc.
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
php sorting dimensions multidimensional-array array-multisort
我有一个阵列
(0=>0,1=>3,2=>3)
Run Code Online (Sandbox Code Playgroud)
我必须首先按值排序这个数组,对于相等的值,我必须先按增加键的顺序排序.
我试图分别在array_keys(SORT_DESC)和array_values(SORT_ASC)上使用multisort,但这给了我:
(0=>0,1=>3,2=>3)
Run Code Online (Sandbox Code Playgroud)
但我想要
(0=>0,2=>3,1=>3)
Run Code Online (Sandbox Code Playgroud)