簡體   English   中英

如何通過 php 中的清理鍵訪問數組的值?

[英]How can I access values of an array through a sanitized key in 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
)
*/

它看起來更有用//

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM