首頁 > 後端開發 > php教程 > php中遍歷數組會尋找數組元素是否存在與當前字串,如果不存在就輸出當前字串,如果存在,則輸出數組的鍵值

php中遍歷數組會尋找數組元素是否存在與當前字串,如果不存在就輸出當前字串,如果存在,則輸出數組的鍵值

WBOY
發布: 2016-08-23 09:17:49
原創
2015 人瀏覽過

<code><?php
$lang_Log=array(
    'rep-cache during mirror is cleard'=>'规则缓冲清除',
    'Starting replication'=>'开始规则',
    'Wait -> Brk'=>'镜像状态改变,由等待到停止状态',
    'OK -> Wait'=>'镜像状态改变,由OK到等待状态',

);


$logs = sd_get_log_sys_by_uuid(uuid);

for($i=0; $i<$count(logs); $i++) {
    if($lang_Log[$logs[$i]]){
        echo $lang_Log[$logs[$i]];
    }else{
        foreach ($lang_Log as $k=> $v) {
            $pos = strpos($logs[$i], $k);
            if($pos !== false){
                echo $v;
                break;
            }
        } 
    }
}

?>
</code>
登入後複製
登入後複製

我想做的就是遍歷數組查找數組元素是否存在與當前字串,如果不存在就輸出當前字串,如果存在,則輸出數組的鍵值。
就是翻譯功能。

1.判斷日誌在陣列中是否有對應中文(因為日誌有的是死的).
2.判斷日誌部分字串是否有對應的中文(有的日誌是包含了變數的語句,所以需要用部分字串匹配,然後翻譯).
3.因為外層有個logs數組的循環語句,所以用break,不用exit.

回覆內容:

<code><?php
$lang_Log=array(
    'rep-cache during mirror is cleard'=>'规则缓冲清除',
    'Starting replication'=>'开始规则',
    'Wait -> Brk'=>'镜像状态改变,由等待到停止状态',
    'OK -> Wait'=>'镜像状态改变,由OK到等待状态',

);


$logs = sd_get_log_sys_by_uuid(uuid);

for($i=0; $i<$count(logs); $i++) {
    if($lang_Log[$logs[$i]]){
        echo $lang_Log[$logs[$i]];
    }else{
        foreach ($lang_Log as $k=> $v) {
            $pos = strpos($logs[$i], $k);
            if($pos !== false){
                echo $v;
                break;
            }
        } 
    }
}

?>
</code>
登入後複製
登入後複製

我想做的就是遍歷數組查找數組元素是否存在與當前字串,如果不存在就輸出當前字串,如果存在,則輸出數組的鍵值。
就是翻譯功能。

1.判斷日誌在陣列中是否有對應中文(因為日誌有的是死的).
2.判斷日誌部分字串是否有對應的中文(有的日誌是包含了變數的語句,所以需要用部分字串匹配,然後翻譯).
3.因為外層有個logs數組的循環語句,所以用break,不用exit.

為什麼不離開else呢?
你循環每一個字,循環第一個是rep-cache during mirror is cleard
存在於$s裡嗎?
不存在
走不走else

運不運行exit;
運行
還繼不繼續執行?
不繼續
後面的字還檢查嗎?
不檢查

<code>foreach ($lang_Log as $k=> $v) {
    $pos = strpos($s, $k);
    if($pos !== false){
        echo $v;
        break;
    }
} 
</code>
登入後複製

$s = "mirror return 0, peer 94, bytes recv [En/De] [2005667596/2005667596 = 100]";
foreach ($lang_Log as $k=> $v) {

<code>$pos = strpos($s, $k);
if($pos !== false){
    echo 'value = ' .  $v . "<br/>;
}else{
    echo 'key = ' .  $k . "<br/>;
}</code>
登入後複製

}

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板