基于PHP中的条件向多维数组添加新的子元素
我可以用循环很容易地实现这一点,但它看起来很混乱,我想知道是否可以用array_map或类似的方法来实现 给定以下数组:基于PHP中的条件向多维数组添加新的子元素,php,arrays,Php,Arrays,我可以用循环很容易地实现这一点,但它看起来很混乱,我想知道是否可以用array_map或类似的方法来实现 给定以下数组: [1]=> array(3) { ["foo"]=> int(25) ["bar"]=> int(100) ["total"]=> int(125) } [2]=> array(3) { ["foo"]=> int(11) ["bar"]=> int(38) ["total"]=>
[1]=>
array(3) {
["foo"]=>
int(25)
["bar"]=>
int(100)
["total"]=>
int(125)
}
[2]=>
array(3) {
["foo"]=>
int(11)
["bar"]=>
int(38)
["total"]=>
int(49)
}
[3]=>
array(3) {
["foo"]=>
int(20)
["bar"]=>
int(100)
["total"]=>
int(120)
}
你将如何用最低的总数来标记索引
e、 g.将其更改为:
[1]=>
array(3) {
["foo"]=>
int(25)
["bar"]=>
int(100)
["total"]=>
int(125)
}
[2]=>
array(4) {
["foo"]=>
int(11)
["bar"]=>
int(38)
["total"]=>
int(49)
["lowest"]=>
bool(true)
}
[3]=>
array(3) {
["foo"]=>
int(20)
["bar"]=>
int(100)
["total"]=>
int(120)
}
(在其他索引中添加“lowest”=>false
是不必要的,但可以接受)
非常感谢,我想不起来了。我的大脑似乎让我失望了,这是漫长的一天。使用array\u column()
我们可以检索子数组。然后使用min()
为了保留原始键,这里还有array\u keys()
和array\u combine()
使用array\u column()
我们可以检索子数组。然后使用min()
为了保留原始键,这里还提供了array\u keys()
和array\u combine()
循环的组合,无论涉及到什么样的循环,无论涉及到什么样的循环,除了array\u column()
将返回一个基于0的数组。因此搜索将返回索引1,但在原始数组中,最小值为索引2。谢谢!在我看来,这不是非常明显的代码,所以我可能会坚持使用循环,因为至少它很容易阅读/理解,但我在这里学到了一些东西:)除了array\u column()
将返回一个基于0的数组。因此搜索将返回索引1,但在原始数组中,最小值为索引2。谢谢!在我看来,这并不是非常明显的代码,所以我可能会坚持使用循环,因为它至少很容易阅读/理解,但我在这里学到了一些东西:)
$total = array_combine(array_keys($array), array_column($array, 'total'));
$minKey = array_search(min($total), $total);
$array[$minKey]['lowest'] = true;