php判断字符是否在某个数组_php中遍历数组查找数组元素是否存在与当前字符串,如果不存在就输出当前字符串,如果存在,则输出数组的键值...

<?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{

$flag = false;

foreach ($lang_Log as $k=> $v) {

$pos = strpos($logs[$i], $k);

if($pos !== false){

$flag = true;

echo $v;

break;

}

}

if(!$flag){

echo $logs[$i];//若没有对应的翻译,则直接输出

}

}

}

?>

我想做的就是遍历数组查找数组元素是否存在与当前字符串,如果不存在就输出当前字符串,如果存在,则输出数组的键值。

就是翻译功能。

1.判断日志在数组中是否有对应中文(因为日志有的是死的).

2.判断日志部分字符串是否有对应的中文(有的日志是包含了变量的语句,所以需要用部分字符串匹配,然后翻译).

3.因为外层有个logs数组的循环语句,所以用break,不用exit.

4.用flag标识符解决

为什么不走

else

呢?

你循环每一个词,循环第一个是

rep-cache during mirror is cleard

存在于

$s

里吗?

不存在

走不走

else

运不运行

exit;

运行

还继不继续执行?

不继续

后面的词还检查吗?

不检查

foreach ($lang_Log as $k=> $v) {

$pos = strpos($s, $k);

if($pos !== false){

echo $v;

break;

}

}

$s = “mirror return 0, peer 94, bytes recv [En/De] [2005667596/2005667596 = 100]”;

foreach ($lang_Log as $k=> $v) {

$pos = strpos($s, $k);

if($pos !== false){

echo 'value = ' .  $v . "<br/>;

}else{

echo 'key = ' .  $k . "<br/>;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值