>  기사  >  백엔드 개발  >  PHP에서는 배열을 순회하여 배열 요소가 있는지 확인하고, 존재하지 않으면 현재 문자열을 출력하고, 배열의 키 값을 출력합니다.

PHP에서는 배열을 순회하여 배열 요소가 있는지 확인하고, 존재하지 않으면 현재 문자열을 출력하고, 배열의 키 값을 출력합니다.

WBOY
WBOY원래의
2016-08-23 09:17:491951검색

<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. 외부 레이어에 로그 배열의 루프 문이 있으므로 종료 대신 중단을 사용합니다.

답글 내용:

<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. 외부 레이어에 로그 배열의 루프 문이 있으므로 종료 대신 중단을 사용합니다.

가는 게 어때요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 = "미러 반환 0, 피어 94, 바이트 수신 [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>

}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.