我正在尝试将数组中的值Event Id替换为$fields
数组中映射到 ( idEvent )的值$aliases
,但是 PHP 的array_search
函数返回了错误的位置。注意:我将值转换为全部小写,因此它应该返回一个匹配项,并且似乎array_search
返回一个索引,但它应该返回索引2
而不是索引,1
因为它是$fields
数组中的第三个值。
不幸的是,如果您运行代码(例如,在此处复制并粘贴:http ://writecodeonline.com/php/ ),它会返回错误的值。如果我做错了什么,有人可以告诉我吗?
$fields = array('Host', 'OS', 'Event Id');
$aliases = array('idEvent' => 'Event ID');
foreach ($aliases as $actual => $alias){
$alias = strtolower($alias);
echo "searching fields(" . implode(',', array_map('strtolower', $fields)) . ") for $alias<br/>";
if ($position = array_search($alias, array_map('strtolower', $fields)) !== FALSE) {
echo "$alias was found at \$fields[$position]";
$fields[$position] = $actual;
}
}
编辑:我添加了一些回声语句,这样你就可以做我想做的事情。