php直接变量赋值

时间:2014-09-22 07:51:53

标签: php arrays variables

我很难弄清楚如何直接为数组键赋值。我认为我现在使用的代码(有效)是低效的,这个代码在每次导入时运行了几千次。

所以我在数组中执行foreach循环,其中一个操作是将数组键从FEMALE更改为F,或者将MALE更改为M.

目前我通过字符串传递值,因为我试图直接设置它的代码失败。

if ($csv[$k] ['gender'] == 'FEMALE') {
  $string = 'F';
} else {
  $string = 'M';
};
$csv[$k] ['gender'] = $string;

/编辑

数组函数的总代码,用于加载CSV文件,然后更改列名并对数据进行一些改进(captical's等),如下所示。

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;
}

1 个答案:

答案 0 :(得分:0)

如果您想稍微简化一下代码片段,可以使用它:

$csv[$k]['gender']  = ( $csv[$k]['gender'] == "FEMALE" ) ? "F" : "M";

如果“女性”为真,则将$ csv [$ k] ['gender']设置为“F”,如果为false,则设置为“M”。

另外,如果您只想将值设置为从男性/女性到F / M,您可以将其设为子串

$csv[$k]['gender'] = substring( $csv[$k]['gender'], 0, 1 );