Php 不使用foreach在数组中创建密钥?

Php 不使用foreach在数组中创建密钥?,php,arrays,Php,Arrays,有时我需要在数组中创建一个键,如果它不存在的话 例如: $dataAgent['Paul'] = array('Sale' => 4,'Conv' => 1.5); $dataAgent['Bill'] = array('Sale' => 6,'Conv' => 5.5); $dataAgent['Tom'] = array('Sale' => 1); $dataAgent['Jake'] = array('Sale' => 6,'Conv' => 10

有时我需要在数组中创建一个键,如果它不存在的话

例如:

$dataAgent['Paul'] = array('Sale' => 4,'Conv' => 1.5);
$dataAgent['Bill'] = array('Sale' => 6,'Conv' => 5.5);
$dataAgent['Tom'] = array('Sale' => 1);
$dataAgent['Jake'] = array('Sale' => 6,'Conv' => 10.5);
$dataAgent['Tom']
数组中缺少
'Conv'

我使用以下代码检查“
Conv”
键是否存在:

foreach($dataAgent as &$agent) { 
  if (!isset($agent['Conv'])) { 
     $agent['Conv'] = 0; 
  }  
}
有没有替代使用foreach和更好可读性的方法

您必须以这样或那样的方式在数组中循环,键不会同时神奇地出现在所有元素中。你可以把手术打扮得与众不同。我最喜欢的可能是:

$dataAgent = array_map(function (array $data) { return $data + array('Conv' => 0); }, $dataAgent);

请注意,
+
运算符使得此处不需要使用
isset

以下是解决方案:

  • 在形成阵列时放置此键。或
  • 使用array_walk($Your_数组,“Your_函数”)


  • 有关详细信息:

    使用数组键存在()检查键存在
    数组键存在
    是不必要的<代码>设置
    工作正常。
    function your_function($value, $key)
    {
    // put your logic here.
    }