小编myw*_*unt的帖子

数组搜索未按预期工作

我试图取代值事件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

3
推荐指数
1
解决办法
536
查看次数

标签 统计

php ×1