配列内の値Event Idを、配列内の ( idEvent ) に$fields
マップされている値に置き換えようとしていますが、PHP の関数が間違った位置を返しています。注:値をすべて小文字に変換しているため、一致が返されるはずです。インデックスを返しているように見えますが、配列の3番目の値であるため、インデックスではなくインデックスを返す必要があります。$aliases
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;
}
}
編集:私がやろうとしていることをできるように、いくつかのエコーステートメントを追加しました。