我想要"从excel文件中获取的值
如果$row['type']
包含'TYPE ONE我希望得到'value-one"。但是,我得到了一个错误。
我不知道这是不是PHP中关联数组的工作方式
$arrType = [
'TYPE ONE' => 'value-one',
'TYPE TWO' => 'value-two',
];
$key = $row['type'];
echo $arrType[$key]; //Error Undefined index: TYPE ONE
如果我手动分配字符串值…它工作…
$arrType = [
'TYPE ONE' => 'value-one',
'TYPE TWO' => 'value-two',
];
$key = 'TYPE ONE';
echo $arrType[$key]; //value-one
EDIT 2021年8月27日它适用于生产。暂时,我们就这样吧……我们认为问题是excel编码或其他什么…
EDIT 14 Sep 2021这是一个特殊字符的问题。它在生产环境中工作,但仍然使用一些正则表达式来删除它们。
$ type = preg_replace ('/^ a-zA-Z ]/', '', 函数内爆(arrType美元[$ key])));
echo $ arrType[$类型];//期望值
考虑事项
$row = [
'TYPE'=>'TYPE TWO',
'type'=>'TYPE ONE ' //possible spaces -- use trim()
];
$arrType = [
'TYPE ONE' => 'value-one',
'TYPE TWO' => 'value-two',
];
$key = $row['type'];
echo $arrType[$key]; //Notice: Undefined index: TYPE ONE
$key = trim($row['type']);
echo $arrType[$key]; //value-one
这是一个特殊字符的问题。它在生产环境中工作,但仍然使用一些正则表达式来删除它们。
$type = preg_replace('/[^a-zA-Z ]/', '', implode(str_split($arrType[$key])));
echo $arrType[$type]; //Expected value