我试图取代值事件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;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我添加了一些echo语句,所以你可以做我想做的事情.
php ×1