我有这样的数组
数组(
[0] => Array(“ destination” =>“ Sydney”,
“ airlines” =>“ airline_1”,
“ one_way_fare” => 100,
“返回票价=> 300
),
[2] => Array(“ destination” =>“ Sydney”,
“ airlines” =>“ airline_2”,
“ one_way_fare” => 150,
“返回票价=> 350
),
[3] => Array(“ destination” =>“ Sydney”,
“ airlines” =>“ airline_3”,
“ one_way_fare” => 180,
“返回票价=> 380
)
)
如何按return_fare asc和one_way_fare asc排序值?
我尝试了array_multisort()但最终却得到了混乱的数据。
Asort仅适用于一维数组,我需要按两个或多个值进行排序,我如何才能像SQL中那样实现此功能,按field1 asc,field2 asc排序?
array_multisort()
是正确的函数,您必须以某种方式搞砸了:
// Obtain a list of columns
foreach ($data as $key => $row) {
$return_fare[$key] = $row['return_fare'];
$one_way_fare[$key] = $row['one_way_fare'];
}
// Sort the data with volume descending, edition ascending
array_multisort($return_fare, SORT_ASC, $one_way_fare, SORT_ASC, $data);
如果您在PHP的手册页上查看的注释array_multisort()
,您会发现一个非常有用的array_orderby()
函数,该函数可以将上述内容简化为:
$sorted = array_orderby($data, 'return_fare', SORT_ASC, 'one_way_fare', SORT_ASC);
为了避免循环使用array_column()
(从PHP 5.5.0开始):
array_multisort(array_column($data, 'return_fare'), SORT_ASC,
array_column($data, 'one_way_fare'), SORT_ASC,
$data);
问题内容: 我有一个从排序的csv创建的以下列表 我实际上想按两个条件对列表进行排序:首先按字段1中的值,然后按字段2中的值。我该怎么做? 问题答案: 像这样:
问题内容: 如何按其字段之一(例如或)对对象数组进行排序? 问题答案: 使用usort,这是从手册改编而成的示例: 您还可以将任何callable用作第二个参数。这里有些例子: 使用匿名函数(来自PHP 5.3) 从班级内部 使用箭头函数(来自PHP 7.4) 另外,如果要比较数字值,则应使用“比较”功能。
问题内容: 我如何对数组进行排序: 数组结构可能类似于: 那么数据是根据数组的 标题字段* 以 ASC顺序 显示的吗? * 问题答案: 为此使用显式构建的用途。
问题内容: 我有一个由数组组成的数组。我想通过子数组的属性对父数组进行排序。这是一个例子 我想通过在子数组中升序对父数组进行排序,因此在这种情况下,结果将是子数组颠倒(,)。使用众多的PHP排序函数中的任何一种,是否可能? 问题答案: 您可以将usort函数用作:
本文向大家介绍按PHP中的子值对php多维数组进行排序,包括了按PHP中的子值对php多维数组进行排序的使用技巧和注意事项,需要的朋友参考一下 'usort'函数可用于对PHP中的多维数组进行排序。它根据用户定义的条件对数组进行排序- 示例 输出结果 这将产生以下输出- 声明一个包含4个元素的数组,并将此数组传递给usort函数,并在元素上调用用户定义的“ my_sort”函数以确保排序以升序进行
问题内容: 我有以下数组结构: 基于,以增量方式对数组进行排序的最佳方法是什么? 因此结果如下所示: 问题答案: 使用。 在PHP≥5.3中,应改为使用匿名函数: 请注意,以上两个代码均假定为整数。 在PHP≥7.0,使用,而不是减法,以防止溢出/截断问题。