php - 如何对具有重复键和值的数组进行排序并分别显示所有键和值,包括php中数组的重复项?
问题描述
当我在 php.ini 中做空这个数组时,我在显示它们各自值的所有键时遇到问题。
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43", "Ben"=>"56");
ksort ($age);
foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
}
我得到的结果是
Key=Ben, Value=56
Key=Joe, Value=43
Key=Peter, Value=35
结果应该是
Key=Ben, Value=37
Key=Ben, Value=56
Key=Joe, Value=43
Key=Peter, Value=35
解决方案
您不能有多个具有相同“名称”的键。
必须可以通过唯一键获取值。两次拥有相同的密钥会产生问题。
您可以改为使用带有子数组的数值数组来解决此问题:
[
['name' => 'Peter', 'age' => 35],
['name' => 'Ben', 'age' => 37],
['name' => 'Ben', 'age' => 56],
];
您的代码已调整:
$age = [
['name' => 'Peter', 'age' => 35],
['name' => 'Ben', 'age' => 37],
['name' => 'Ben', 'age' => 56],
['name' => 'Joe', 'age' => 43],
];
usort($age, function ($a, $b) {
return $age['age'] - $b['age'];
});
foreach($age as $key => $person) {
echo "Name=" . $person['name'] . ", Age=". $person['age'];
}
推荐阅读
- r - 来自 glmer 的反向变换系数与用于预测的缩放自变量
- c++ - 使用参数调用构造函数会重置先前初始化的数据元素 - 发布/调试 VS17
- javascript - iOS Safari:仅音频录制噪音
- python - 如何根据传递的参数动态更改函数的输出?
- asp.net-core - ASP.NET Core SignalR 仅将消息路由到某些客户端
- bar-chart - 如何从三个独立的数据源创建单个条形图?
- java - 主要错误空指针异常/也无法在命令行中运行
- ios - DateFormatter 提前一小时
- javascript - 如何理解和查看 HTML 嵌入式 JavaScript 的解析?
- javascript - 如何在特定数量的计数器上发出警告/消息?