基于PHP中的条件向多维数组添加新的子元素

基于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"]=>

我可以用循环很容易地实现这一点,但它看起来很混乱,我想知道是否可以用array_map或类似的方法来实现

给定以下数组:

[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;