php - 如何在php中将零存储在数组中
问题描述
我试图将值 0 存储在关联数组中,以便稍后将其用作另一个数组的键。
但是我无法使用下面的代码检索 0。
发生的情况是,在 while 循环中,当内容为 0 时,它们的“主题”键被完全忽略。
任何其他值都可以。
如何循环关联数组并获得 0 值?
这种行为的原因是什么?
$requestdata = [];
$requestdata['company'] = 'some company';
$requestdata['country'] = 'some country';
$requestdata['message'] = 'some message';
$requestdata['link'] = 'www.somelink.com';
$requestdata['containers'] = 'some container';
$requestdata['products'] = 'some product';
$requestdata['subject'] = 0;
while (current($requestdata)):
$key = key($requestdata);
if($key != "subject"):
$ncf_values = [];
$ncf_values["fieldValue"] = [];
$ncf_values["fieldValue"]["contact"] = 120;
$ncf_values["fieldValue"]["field"] = 12;
$ncf_values["fieldValue"]["value"] = $requestdata[$key];
elseif($key == "subject"):
$subjects_array = ["Selling","Buying", "Services", "Other"];
$ncf_values = [];
$ncf_values["fieldValue"] = [];
$ncf_values["fieldValue"]["contact"] = 120;
$ncf_values["fieldValue"]["field"] = 12;
$ncf_values["fieldValue"]["value"] = $subjects_array[$requestdata[$key]];
endif;
next($requestdata);
endwhile;
解决方案
因为0
松散地评估false
和while
终止。显式测试:
while (current($requestdata) !== false):
但是,您为什么不使用foreach
?
foreach($requestdata as $key => $val) {
// use $key and $val
}
推荐阅读
- r - 如何均匀地绘制半年度数据?
- image - 如何提取 MVIMG 的照片/视频组件?
- amazon-web-services - 从远程 Solaris 服务器到 AWS S3 存储桶的 FTP 文件
- javascript - 需要帮助将 excel 公式转换为 Javascript 逻辑
- python - 从 h2o 中,有没有办法将 N 个文件夹交叉验证结果导出到数据框中?
- angular - 使用 EventEmitter Angular 2 共享数据
- excel - worksheet_change 事件仅在删除单元格输入时触发
- python - 用于转换熊猫 groupby 数据帧的 Python lambda 函数语法
- ruby - 本地字符串变量在 Ruby 中不起作用,有什么想法吗?
- protractor - sendKeys 停止 Protractor 中的 e2e 测试流程