有时我需要在数组中创建密钥(如果它不存在)。
例如:
$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);
'Conv'
数组中缺少 $dataAgent['Tom']
密钥。
我使用以下代码检查是否存在“Conv'
密钥:
foreach($dataAgent as &$agent) {
if (!isset($agent['Conv'])) {
$agent['Conv'] = 0;
}
}
是否有替代方式而不是使用foreach和更好的可读性?
答案 0 :(得分:2)
你将 以这种或那种方式循环遍历数组,这个键不会同时神奇地出现在所有元素中。你可以用不同的方式打扮。我最喜欢的可能是:
$dataAgent = array_map(function (array $data) { return $data + array('Conv' => 0); }, $dataAgent);
请注意,+
运算符在此处不必使用isset
。
答案 1 :(得分:0)
以下是解决方案:
使用array_walk($ Your_array," your_function");
function your_function($value, $key)
{
// put your logic here.
}