相关疑难解决方法(0)

使用 usort 和 spaceship 运算符正确排序多维数组

我需要使用以下逻辑对以下数组进行排序:如果“分数”相同,我想使用“时间”进行比较。数组如下:

$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 sorting usort multidimensional-array asort

3
推荐指数
1
解决办法
4102
查看次数

将考试成绩从最高到最低排序

我为我的学生做了一个简单的基于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)

php sorting while-loop

3
推荐指数
1
解决办法
65
查看次数

根据PHP中的值对数组进行排序

我有以下数组

[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值对这个数组进行排序,不知道如何实现这个目的?

php arrays sorting

2
推荐指数
1
解决办法
1030
查看次数

使用多个值过滤和排序多维数组

我有一个大的多维数组,如下所示:

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没有cat1blah1

任何人都可以看到我需要做些什么来使这个工作?

也可以在这个函数中加入sortin,如果是这样的话怎么样?

function array_searcher($needles, $array) { 
    foreach ($needles …
Run Code Online (Sandbox Code Playgroud)

php arrays sorting filtering multidimensional-array

2
推荐指数
1
解决办法
3843
查看次数

array_multisort():数组大小不一致

我试图使用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)

php arrays codeigniter

2
推荐指数
1
解决办法
2万
查看次数

如何按日期按升序排列此数组?

这是我的阵列

[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()但是没有用

php arrays

1
推荐指数
1
解决办法
1835
查看次数

如何根据特定值按降序对数组进行排序

我有一系列新闻

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'但是无法找到正确的结果有人可以建议我吗?

php arrays

1
推荐指数
1
解决办法
1万
查看次数

在PHP中按正则表达式组排序

我有一个这种形式的文件名数组:

"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)

php regex sorting

0
推荐指数
1
解决办法
1288
查看次数

如何对此数组进行排序

我有这样的数组

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函数,还是我必须手动排序?

php arrays sorting

0
推荐指数
1
解决办法
124
查看次数

PHP从最高到最低排序JSON

我有以下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 sorting json

0
推荐指数
1
解决办法
542
查看次数

usort函数结果错误

今天我提供了这个问题的答案,我写了一个脚本,但我发现出了问题.

这是第一个脚本

<?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)

php sorting usort

0
推荐指数
1
解决办法
349
查看次数

使用数组键按名称对数组进行排序

我有这样的数组,我怎么能按"名字"排序

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)

php

0
推荐指数
1
解决办法
89
查看次数

按"价格"值对数组进行排序

我有一个以下格式的数组 - 我希望能够对此进行排序,因此最高价格是第一个 - 我已经尝试过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 arrays sorting

-2
推荐指数
1
解决办法
5448
查看次数