【发布时间】:2021-07-24 23:02:28
【问题描述】:
我想“映射”从 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
2021 年 8 月 27 日编辑 它适用于生产。暂时就这样吧……我们认为问题出在excel编码之类的……
2021 年 9 月 14 日编辑 这是特殊字符的问题。它适用于生产,但仍然使用了一些正则表达式来删除它们。
$type = preg_replace('/[^a-zA-Z ]/', '', implode(str_split($arrType[$key])));
回声 $arrType[$type]; //期望值
【问题讨论】:
-
你得到什么错误?
-
未定义索引:TYPE ONE
-
这显然意味着
$row['type']的值不是你所期望的。var_dump($row['type']) -
已经尝试转换为字符串
-
您的值是否包含引号?你能试试
$key = trim($row['type'], '"');吗?
标签: php