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
。以下是解决方案:
有关详细信息:使用数组键存在()检查键存在
数组键存在是不必要的<代码>设置
工作正常。
function your_function($value, $key)
{
// put your logic here.
}