php 查询字符串并替换

目前有两组数组,111,222,333,444,555,666,777,888 …… 和 aaa,bbb,ccc,ddd,eee,fff,ggg,hhh……
这两个数组的
我想实现传入一个值,比如 $in="222",则输出 $out="bbb",传入 $in="333",则输出$out="ccc",相当于把第一个数组的某个值替换成第二个数组同一顺序的值。

由于以上两数组的数据量很大,一行一行做替换不现实,请问函数代码应该怎么写呢?

$in_array=array('111','222','333');
$out_array=array('aaa','bbb','ccc');
$search='111';
$index=array_search($search,$in_array);
if($index!==false){
echo $out_array[$index];
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-24
$in_array=array('111','222','333');
$out_array=array('aaa','bbb','ccc');

$index=2;
$out=$out_array[$index];

前两行的初始化数据数组也可以用循环语句添加或从数据库得到。追问

谢谢,不过我传入的值不是顺序值,而是字符串中的某个值。
$index=2; 得到结果,不应该是这样,而是传入 $index="222"; 结果为 $out="bbb";

追答

关于$index,你说得对。
传入字符串中的某个值,能否具体点?

第2个回答  2013-06-24

简单不过需要封装成函数,代码如下:

function str_change($number) {
    // 创建一个数组用来存储数字
    $numList = range(1, 26); // 因为26个英文字母
    // 创建一个数组用来存储英文字母
    $engList = range('a', 'z'); // 两个数组下标一致
    // 循环遍历数字数组
    foreach ($numList as $key => $num) {
        // 获取新数字数组 诸如:array(111, 222, ... 252525, 262626)
        $array1 = $num . $num . $num;
        // 获取新英文字母数组 诸如:array('aaa', 'bbb', ... 'yyy', 'zzz')
        $array2 = $engList[$key] . $engList[$key] . $engList[$key];
    }
    // 容错处理
    if (!in_array($number, $array1)) exit('数字参数不合法!');
    // 循环遍历新数字数组
    foreach ($array1 as $key => $num) {
        // 检测与参数是否一致
        if ($number == $num) $str = $array2[$key]; // 获取相应的英文字母,这里的巧妙之处在于两个数组下标一致
    }
    // 最终返回诸如:aaa,bbb,ccc的英文字母
    return $str;
}

如果有什么不明白的地方或者其他疑问,随时可以追问~