Home > Backend Development > PHP Tutorial > php将一个数组按另一个数组的规则替换键值并获取其值转为字符串

php将一个数组按另一个数组的规则替换键值并获取其值转为字符串

WBOY
Release: 2016-06-23 13:19:46
Original
1254 people have browsed it

现在有两个数组

$arr1=array("q" => "1","w" => "2","e" => "3");$arr2=array([0] => "你",[1] => "我",[2] => "他");
Copy after login

现在我需要得到这样一个数组
$arr = array("q" => "你","w" => "我","e" => "他");//然后需要只获取这个数组的值 转为字符串 用逗号隔开  $str ='你,我,他';
Copy after login


回复讨论(解决方案)

$arr1=array("q" => "1","w" => "2","e" => "3");$arr2=array(0 => "你",1 => "我",2 => "他");$arr3 = array_combine(array_keys($arr1), $arr2);print_r($arr3);echo join(',', $arr3);
Copy after login
Copy after login
Array(    [q] => 你    [w] => 我    [e] => 他)你,我,他
Copy after login
Copy after login

$arr1=array("q" => "1","w" => "2","e" => "3");$arr2=array(0 => "你",1 => "我",2 => "他");$arr3 = array_combine(array_keys($arr1), $arr2);print_r($arr3);echo join(',', $arr3);
Copy after login
Copy after login
Array(    [q] => 你    [w] => 我    [e] => 他)你,我,他
Copy after login
Copy after login


谢大神 不过我刚尝试了一下 还是有问题
我给下实例吧

Array ( [0] => Array ( [is_notice] => 5 ) [1] => Array ( [is_notice] => 16 ) )

这是$arr1 的数组 是一个表示类型的参数 比如发起申请 取消申请 申请被驳回等动作 数据库里读出来的就是 5,16这样的数字,范围是1-20
依据条件 读出的条数不定可能超过20条 也就可能会有重复的 5,5,5,6,6,10,10 这样的

然后有$arr2 就是[0]到[19]对应 20个类型的中文说明 都是简短的四个字

向用户呈现的消息需要是 xxx有以下动作 :发起申请,申请被驳回,加入,归档,....。 这样子的

然后按您的来试了下 echo join(',', $arr3);的值msgtype和一个表达状态的变量status=1 组成一个json返回 以下的返回的
{"msgtype":null,"status":1}

print_r($arr3);为空
var_dump 为bool(false)

$typearr = array(
[0] => "系统通知",
[1] => "材料通过",
[2] => "审核失败",
[3] => "额度更新"
.....
);
这是arr2的数组 麻烦帮我检查下 是不是arr1 arr2两个数组的问题



Array ( [0] => Array ( [is_notice] => 5 ) [1] => Array ( [is_notice] => 16 ) )
你这可是二维数组呀

Array ( [0] => Array ( [is_notice] => 5 ) [1] => Array ( [is_notice] => 16 ) )
你这可是二维数组呀



啊哦...
原来只读取一个字段也会是一个数组
从数据库里读出来的都是is_notice这个字段
这里我怎么转成
$arr1=array(
"is_notice" => "1",
"is_notice" => "5",
"is_notice" => "16"
);

求教

这样吗?

$arr1 = array(    array('is_notice'=>3),    array('is_notice'=>2),    array('is_notice'=>1));$arr2 = array(    0 => '系统通知',    1 => '材料通过',    2 => '审核失败',    3 => '额度更新');$arr3 = array();foreach($arr1 as $k=>$v){    $arr3[]['is_notice'] = $arr2[$v['is_notice']];}print_r($arr3);
Copy after login



Array
(
    [0] => Array
        (
            [is_notice] => 额度更新
        )

    [1] => Array
        (
            [is_notice] => 审核失败
        )

    [2] => Array
        (
            [is_notice] => 材料通过
        )

)


Array ( [0] => Array ( [is_notice] => 5 ) [1] => Array ( [is_notice] => 16 ) )
你这可是二维数组呀



啊哦...
原来只读取一个字段也会是一个数组
从数据库里读出来的都是is_notice这个字段 
这里我怎么转成
$arr1=array(
"is_notice" => "1",
"is_notice" => "5",
"is_notice" => "16"
);

求教
这样也是二维数组了
这样可以
$arr3[] = $arr2[$v['is_notice']];

感谢!!
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template