如何在php中通过已消毒的键访问数组的值?



假设我有一个这样的关联数组:

PHP

$array = array(
'Corfù' => 'pita gyros',
'San Gennaro'  => 'pizza',
'Perù' => 'tortillias'
);

我如何在php中像这样通过一个经过消毒的键访问这个数组的值?(可能没有循环)

PHP

echo $array['corfu'];
// pita gyros
echo $array['san-gennaro'];
// pizza

而不是

PHP

echo $array['Corfù'];
// pita gyros

这是因为我从相关页面的url中获取键,显然缺少重音和空白

function seola($s)
{
$tr = array('ş', 'Ş', 'ı', 'İ', 'ğ', 'Ğ', 'ü', 'Ü', 'ö', 'Ö', 'Ç', 'ç','ù');
$eng = array('s', 's', 'i', 'i', 'g', 'g', 'u', 'u', 'o', 'o', 'c', 'c', 'y','u');
$s = str_replace($tr, $eng, $s);
$s = strtolower($s);
$s = preg_replace('/&.+?;/', '', $s);
$s = preg_replace('/[^%a-z0-9 /_-]/', '', $s);
$s = preg_replace('/s+/', '-', $s);
$s = preg_replace('|-+|', '-', $s);
$s = trim($s, '-');
$s = substr($s, 0, 60);
return $s;
}
$array = array(
'Corfù' => 'pita gyros',
'San Gennaro' => 'pizza',
'Perù' => 'tortillias'
);
foreach ($array as $key=>$value){
$array[seola($key)] = $array[$key];
unset($array[$key]);
}
print_r($array);
/*
Array
(
[corfu] => pita gyros
[san-gennaro] => pizza
[peru] => tortillias
)
*/

看起来更有用//

最新更新