php - 是否可以在 PHP 中对多维数组进行排序以按替代值排序,即 1/0/1/0/1/0
问题描述
如果你有这个 PHP 数组:
$args = array(
'a' => array(
'order' => 1,
),
'b' => array(
'order' => 0,
),
'c' => array(
'order' => 0,
),
'd' => array(
'order' => 0,
),
'e' => array(
'order' => 1,
),
);
有没有办法使用 usort (或其他)方法,可以按多维键的值对其进行排序,但不是“增量”(0,0,0,1,1),而是交替(0,1,0, 1,0)。
因此,以上面的数组为例,所需的顺序输出是按备用“顺序”键值排序的键:
$args = array(
'b' => array(
'order' => 0,
),
'a' => array(
'order' => 1,
),
'c' => array(
'order' => 0,
),
'e' => array(
'order' => 1,
),
'd' => array(
'order' => 0,
),
);
简而言之; 键现在按称为“order”的键的值排序,并在值上交替,因此它们是:0、1、0、1、0。
我根本想不通这个!
解决方案
不,这是不可能的。排序意味着您可以比较两个元素并确定它们应该具有的顺序。当您有两个1
元素时,您的查询将失败。
但是,这并不意味着它不能通过算法完成,只是排序或排序不是这项工作的正确工具。
推荐阅读
- c# - Unity3d Resources.Load() 为静态变量返回 null
- python - 在 DataFrame 中填充 NaN 的快速方法
- html - 标题 div 背景 100% 宽度,固定高度
- sql - 处理数组和无数组条目的 Postgres JSONB 列选择语句
- python - FastAPI docker-compose 文件未找到错误
- azure - 在 Azure 通信服务中选择不同的音频流
- firebase - 使用最终分数更新 Firebase 并显示给用户
- python-3.x - HtmlResponse requests.response 之间的区别
- c# - Unity3D - 当平台旋转时,刚体通过平台对撞机进行定相
- c# - MouseUp 和 MouseDown 不适用于 usercontrol 的子级