массивы — прямое присвоение переменной php

Мне трудно понять, как напрямую присвоить значение ключу массива. Я думаю, что код, который я сейчас использую (который работает), неэффективен, и этот код выполняется несколько тысяч раз при каждом импорте, который я выполняю.

Поэтому я выполняю цикл foreach через массив, и одно из действий — изменить ключ массива FEMALE к F или если это MALE к М.

В данный момент я пропускаю значение через строку, потому что код, который я пытался установить, не работает.

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

0

Решение

Если вы хотите немного упростить свой фрагмент кода, вы можете использовать это:

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

Это установит $ csv [$ k] [‘sex’] в «F», если «female» равно true, или «M», если false.

Кроме того, если все, что вам нужно, это установить значение от Мужской / Женский до F / M, вы можете просто подставить его

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]