【发布时间】:2014-09-22 07:51:52
【问题描述】:
我很难弄清楚如何将值直接分配给数组键。我认为我现在使用的代码(有效)效率低下,并且每次导入时这段代码都会运行几千次。
所以我在一个数组中执行了一个 foreach 循环,其中一个操作是将数组键从 FEMALE 更改为 F,或者将 MALE 更改为 M。
目前我通过字符串传递值,因为我尝试直接设置它的代码失败。
if ($csv[$k] ['gender'] == 'FEMALE') {
$string = 'F';
} else {
$string = 'M';
};
$csv[$k] ['gender'] = $string;
/编辑
用于加载 CSV 文件然后更改列名并对数据进行一些改进(captical 等)的数组函数的总代码如下。
foreach ( $csv as $k=>$v )
{
$csv[$k] ['firstname'] = ucfirst(strtolower($csv[$k] ['firstname']));
$csv[$k] ['lastname'] = ucfirst(strtolower($csv[$k] ['lastname']));
$csv[$k] ['city'] = ucfirst(strtolower($csv[$k] ['city']));
$csv[$k] ['street'] = ucfirst(strtolower($csv[$k] ['street']));
$csv[$k] ['email'] = strtolower($csv[$k] ['email']);
if ($csv[$k] ['gender'] == 'FEMALE') {
$string = 'F';
} else {
$string = 'M';
};
$csv[$k] ['gender'] = $string;
}
【问题讨论】:
-
你能把这段代码粘贴到这段代码前面几行吗?
-
在再次保存后如何使用字符串还是仅在循环中使用?而不是设置一个变量,你可以做一个 $csv[$k]['gender'][0] 总是得到第一个字符
-
我是 stackoverflow 的新手,所以还要弄清楚如何正确编辑内容。
-
你总是可以通过使用三元运算符
$csv[$k]['gender'] = $csv[$k]['gender'] == 'FEMALE' ? 'F' : 'M';得到这样“更短”的东西,reads 更好的是由你决定......毕竟,你仍然需要当您明天、下个月、一年后查看代码时,了解代码的作用……