我需要使用以下逻辑对以下数组进行排序:如果“分数”相同,我想使用“时间”进行比较。数组如下:
$user_scores = [ 82 => [ 'score' => 1, 'time' => 6.442 ],
34 => [ 'score' => 1, 'time' => 5.646 ],
66 => [ 'score' => 3, 'time' => 1.554 ]
]
Run Code Online (Sandbox Code Playgroud)
上面数组中的“键”是“user_ids”,我需要将其保留在排序数组中。到目前为止我最好的尝试如下 -
$result = usort( $user_scores, function ( $a, $b ) {
if ( $a['score'] == $b['score'] ) {
return $a['time'] == $b['time'];
}
return $a['score'] <=> $b['score'];
} );
Run Code Online (Sandbox Code Playgroud)
显然,这是行不通的,我得到的 $user_scores 数组的所有键都替换为 0、1、2 而不是 user_ids ( 82、34 和 66 )。排序也不起作用。
对于上面的数组,我想要的输出是 $user_scores array : …
我为我的学生做了一个简单的基于PHP的考试.结果在数据库中记录为"q1","q2","q3","q4"和"q5".
正确答案记录为"是",错误答案记录为"否".
有5个问题,我希望总分为100分.
所有的功能都按照我的意愿运行,但问题是,我不知道如何将结果从高到低排序.任何帮助都非常感谢!
$result = mysqli_query($db,"SELECT * FROM table");
while($row = mysqli_fetch_array($result)){
$score = 0;
echo '<img alt="'.$row["name"].'" src="images/'.$row["name"].'.jpg" width="118" height="158"';
if ($row["q1"] === "yes") {$score=$score+20;}
if ($row["q2"] === "yes") {$score=$score+20;}
if ($row["q3"] === "yes") {$score=$score+20;}
if ($row["q4"] === "yes") {$score=$score+20;}
if ($row["q5"] === "yes") {$score=$score+20;}
echo ' /> '.$row["name"] . ' ' . $score;
}
Run Code Online (Sandbox Code Playgroud) 我有以下数组
[0] => Array
(
[id] => 229
[val] => 2
)
[3] => Array
(
[id] => 237
[val] => 1
)
[4] => Array
(
[id] => 238
[val] => 6
)
Run Code Online (Sandbox Code Playgroud)
我需要根据数组中的val值对这个数组进行排序,不知道如何实现这个目的?
我有一个大的多维数组,如下所示:
Array(
[1] => Array ( [type] => blah1 [category] => cat1 [exp_range] => this_week )
[2] => Array ( [type] => blah1 [category] => cat2 [exp_range] => next week )
[3] => Array ( [type] => blah1 [category] => cat1 [exp_range] => next week )
[4] => Array ( [type] => blah2 [category] => cat2 [exp_range] => this_week )
)
Run Code Online (Sandbox Code Playgroud)
我希望能够使用多个过滤器过滤此数组.
例如.过滤where category = cat1和type = blah1将返回数组1和3.
我有以下函数将返回键1,2,3这是不正确的,因为数组2没有cat1 和blah1
任何人都可以看到我需要做些什么来使这个工作?
也可以在这个函数中加入sortin,如果是这样的话怎么样?
function array_searcher($needles, $array) {
foreach ($needles …Run Code Online (Sandbox Code Playgroud) 我试图使用array_multisort()函数...... 在子数组的基础上对数组进行排序......
在尝试时;
print_r($mar); echo '<br>';
$arr2 = array_multisort($mar, array('wek'=>SORT_ASC));
print_r($arr2);
Run Code Online (Sandbox Code Playgroud)
得到错误 array_multisort(): Array sizes are inconsistent
排序前的输出是
Array (
[0] => Array ( [dat] => 1 [wek] => 5 [mac] => A100 [mcr] => #00c8ff )
[1] => Array ( [dat] => 2 [wek] => 9 [mac] => A100 [mcr] => #00c8ff )
[2] => Array ( [dat] => 5 [wek] => 13 [mac] => A100 [mcr] => #00c8ff )
[3] => Array ( [dat] => 5 …Run Code Online (Sandbox Code Playgroud) 这是我的阵列
[comment] => Array
(
[0] => Array
(
[mem_id] => 51
[comment] => nice...
[profilenam] => xyz
[photo_thumb] => photos/81951b37ad01c4aa65662956f178214eth.jpeg
[date] => 1307975661
)
[1] => Array
(
[mem_id] => 329
[comment] => nice...
[profilenam] => abc
[photo_thumb] => photos/f841eab12f5a24ce12b984904760c05fth.jpeg
[date] => 1308043486
)
)
Run Code Online (Sandbox Code Playgroud)
实际上我想按日期按升序排列,我使用了asort()但是没有用
我有一系列新闻
Array
(
[0] => Array
(
[news_published] => 1337192831
[news_category] => 5
)
[1] => Array
(
[news_published] => 1334566743
[news_category] => 5
)
[2] => Array
(
[news_published] => 1340092425
[news_category] => 6
)
[3] => Array
(
[news_published] => 1339740173
[news_category] => 6
)
[4] => Array
(
[news_published] => 1336148837
[news_category] => 6
)
)
Run Code Online (Sandbox Code Playgroud)
我如何按降序对news_published进行排序....我试过'usort'但是无法找到正确的结果有人可以建议我吗?
我有一个这种形式的文件名数组:
"A - 1.2 - 平面图.PDF"
我需要首先按照开头的类别对数组进行排序,顺序如下:
1. Category: A
2. Category: ESC
3. Category: C
4. Category: M
5. Category: E
6. Category: P
Run Code Online (Sandbox Code Playgroud)
然后我需要按类别后面的数字对数组进行排序.
这是要排序的数组的示例:
$arr[0] = "A - 1.0 - Title Page.PDF";
$arr[1] = "A - 2.2 - Enlarged Floor Plans";
$arr[2] = "A - 2.1.0 - Structural Details.PDF";
$arr[3] = "E - 1.0 - Electrical Title Page.PDF";
$arr[4] = "A - 1.2 - Floor Plan.PDF";
$arr[5] = "P - 1.0 - Plumbing Title Page.PDF";
$arr[6] = …Run Code Online (Sandbox Code Playgroud) 我有这样的数组
Array
(
[73] => Array
(
[id] => 73
[firstName] => Laura
[lastName] => ...
[email] => ...
[password] => 6d1d3a1dcb9e44eb43605f8ad3c529dd7271749c
[venueId] => 8
[departmentId] => 2
[active] => 1
)
[116] => Array
(
[id] => 116
[firstName] => Rachael
[lastName] => ...
[email] => ...
[password] => 33d83a16aa038e775709fc8d499fe608ad2f4afe
[venueId] => 24
[departmentId] => 1
[active] => 1
)
...etc
Run Code Online (Sandbox Code Playgroud)
我想对它进行排序,以便firstName是按字母顺序排列的.是否有我可以使用的预构建的PHP函数,还是我必须手动排序?
我有以下json:
{
"ID":"4",
"name":"Gil",
"likes":0,
"Dec":"A Man"
},
{
"ID":"3",
"name":"Yoni",
"likes":3,
"Dec":"A child"
},
{
"ID":"6",
"name":"Roni",
"likes":1,
"Dec":"A woman"
}
Run Code Online (Sandbox Code Playgroud)
我想基于从最高到最低的喜欢重新排列它,结果将是:
{
"ID":"5",
"name":"Roni",
"likes":6,
"Dec":"A woman"
} ,
{
"ID":"3",
"name":"Yoni",
"likes":3,
"Dec":"A child"
},
{
"ID":"4",
"name":"Gil",
"likes":0,
"Dec":"A Man"
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在php中重新排列它?
今天我提供了这个问题的答案,我写了一个脚本,但我发现出了问题.
这是第一个脚本
<?php
$array = array(
"0" => array (
"id" => 1204,
"custom_price" => 33.1500
),
"1" => array (
"id" => 1199,
"custom_price" => 15.83
),
"2" => array (
"id" => 1176,
"custom_price" => 16.83
)
);
usort($array, function($a, $b) {
return $a['custom_price'] - $b['custom_price'];
});
echo "<pre>";
print_r($array);
Run Code Online (Sandbox Code Playgroud)
它的输出是(你也可以检查沙盒上的输出)
<pre>Array
(
[0] => Array
(
[id] => 1176
[custom_price] => 16.83
)
[1] => Array
(
[id] => 1199
[custom_price] => 15.83 …Run Code Online (Sandbox Code Playgroud) 我有这样的数组,我怎么能按"名字"排序
Array (
[0] => Array (
[id] => 1
[name] => status_category_confide
)
[1] => Array (
[id] => 2
[name] => status_category_love
)
[2] => Array (
[id] => 3
[name] => status_category_household
)
[3] => Array (
[id] => 4
[name] => status_category_family
)
[4] => Array (
[id] => 5
[name] => status_category_friends
)
[5] => Array (
[id] => 6
[name] => status_category_colleague
)
[6] => Array (
[id] => 7
[name] => status_category_work
) …Run Code Online (Sandbox Code Playgroud) 我有一个以下格式的数组 - 我希望能够对此进行排序,因此最高价格是第一个 - 我已经尝试过array_multisort()但是到目前为止我没有任何运气.
$working[33] = array('id' => '33', 'price' => '250.00');
$working[34] = array('id' => '34', 'price' => '277.88');
Run Code Online (Sandbox Code Playgroud)
使用某些函数按价格排序最终产品应如下所示: - 因为277价格大于250
$working[34] = array('id' => '34', 'price' => '277.88');
$working[33] = array('id' => '33', 'price' => '250.00');
Run Code Online (Sandbox Code Playgroud) php ×13
sorting ×9
arrays ×7
usort ×2
asort ×1
codeigniter ×1
filtering ×1
json ×1
regex ×1
while-loop ×1