当前位置: 首页 > 面试题库 >

如何通过PHP内部数组的字段之一对多维数组排序?

林辰钊
2023-03-14
问题内容

假设我有一个模仿数据库表的数组。每个数组元素代表一行,并且在每一行内是另一个包含字段名称和值的数组。

Array
(
    [0] => Array
        (
            [name] => 'Sony TV'
            [price] => 600.00
        )

    [1] => Array
        (
            [name] => 'LG TV'
            [price] => 350.00
        )

    [2] => Array
        (
            [name] => 'Samsung TV'
            [price] => 425.00
        )  
}

我想要做的是按价格对行(外部数组元素)进行排序。以下是我要实现的示例:

Array
(
    [0] => Array
        (
            [name] => 'LG TV'
            [price] => 350.00
        )

    [1] => Array
        (
            [name] => 'Samsung TV'
            [price] => 425.00
        )

    [2] => Array
        (
            [name] => 'Sony TV'
            [price] => 600.00
        )        
}

如您所见,我不需要保留外部数组的键。


问题答案:

您需要使用usort,该函数通过用户定义的函数对数组进行排序。就像是:

function cmp($a, $b)
{
    if ($a["price"] == $b["price"]) {
        return 0;
    }
    return ($a["price"] < $b["price"]) ? -1 : 1;
}

usort($yourArray,"cmp")


 类似资料:
  • 问题内容: 我正在尝试根据内部数组中的特定值对我的PHP哈希表进行排序。数据结构如下所示: 我已经尝试过 ksort , sort , usort, 但是似乎没有任何作用。我正在尝试根据 名称键 向下两级进行排序。 这是我尝试使用usort的尝试: 有没有简单的方法可以做到这一点,或者我需要编写一个自定义排序功能? 问题答案: 思考,更有用和实用的 如何使用

  • 有人能帮我吗?我尝试按内部数组的长度(降序)对二维数组进行排序。 此数组: 应该会产生这个排序的数组: 你有提示吗?

  • 问题内容: 我试图通过多个键对多维数组进行排序,但我不知道从哪里开始。我看了uasort,但不确定如何根据需要编写函数。 我需要按状态排序,然后按event_type排序,然后按日期排序。 我的数组如下所示: 问题答案: 你需要 从PHP 5.5.0开始: 就是现在:

  • 问题内容: 我已将CSV数据加载到多维数组中。这样,每个“行”都是一条记录,每个“列”都包含相同类型的数据。我正在使用下面的功能加载我的CSV文件。 我需要能够指定要排序的列,以便重新排列行。其中一列包含格式为的日期信息,我希望能够以最新日期为第一行进行排序。 问题答案: 您可以使用array_multisort() 尝试这样的事情: 对于PHP> = 5.5.0,只需提取列进行排序即可。无需循环

  • 问题内容: 我有一个php表单,该表单具有已知的列数(例如,顶部直径,底部直径,织物,颜色,数量),但是行数未知,因为用户可以根据需要添加行。 我发现了如何采用每个字段(列)并将其放入各自的数组中。 因此,我最终在HTML中得到的是: 我现在想做的是将所有行和列都放入多维数组,然后将其内容通过电子邮件发送给客户端(最好在格式良好的表中)。我还无法真正理解如何将所有这些输入和选择组合到一个不错的数组

  • 问题内容: 有没有一种方法可以使用sort()方法或任何其他方法按列对列表进行排序?可以说我有清单: 我想对其进行排序,使其看起来像这样: 这样做的最佳方法是什么? 编辑: 现在,我遇到索引超出范围错误。我有一个二维数组,可以说1000行b 3列。我想根据第三列对其进行排序。这是正确的代码吗? 问题答案: 是。该内置接受的说法: 请注意,将返回一个新列表。如果要就地排序,请使用列表的方法(也可以方