首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用foreach的情况下在数组中创建键?

在不使用foreach的情况下在数组中创建键?
EN

Stack Overflow用户
提问于 2014-02-11 20:31:31
回答 2查看 46关注 0票数 0

有时我需要在数组中创建键,如果它不存在。

例如:

代码语言:javascript
复制
$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'密钥‘是否存在:

代码语言:javascript
复制
foreach($dataAgent as &$agent) { 
  if (!isset($agent['Conv'])) { 
     $agent['Conv'] = 0; 
  }  
}

有没有替代foreach和更好的可读性的方法?

EN

回答 2

Stack Overflow用户

发布于 2014-02-11 20:33:59

您将不得不以某种方式遍历数组,键不会同时神奇地出现在所有元素中。你可以用不同的方式装扮你的手术。我最喜欢的可能是:

代码语言:javascript
复制
$dataAgent = array_map(function (array $data) { return $data + array('Conv' => 0); }, $dataAgent);

注意,+操作符使得这里不需要使用isset

票数 2
EN

Stack Overflow用户

发布于 2014-02-11 20:42:40

以下是解决方案:

  1. 在形成您的数组时放入此密钥。或者
  2. 使用array_walk($Your_array,"your_function");

function your_function($value,$key) { //将您的逻辑放在此处。}

有关更多信息,请访问:http://in3.php.net/array_walk

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21701921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档