把数组中的值变为键名,求解

2017-10-08 10:42:33 +08:00
 cnqncom
array(6) {
[0]=>
string(3) "111"
[1]=>
string(3) "222"
[2]=>
string(3) "333"
[3]=>
string(3) "444"
[4]=>
string(3) "555"
[5]=>
string(3) "666"
}

现在想得到:
array(6) {
[111]=>
string(3) "222"
[333]=>
string(3) "444"
[555]=>
string(3) "666"
}
2731 次点击
所在节点    PHP
6 条回复
cnqncom
2017-10-08 10:43:16 +08:00
array(3) {
[111]=>
string(3) "222"
[333]=>
string(3) "444"
[555]=>
string(3) "666"
}
zcc911
2017-10-08 10:53:36 +08:00
最简单的:
$arr = ['111', '222', '333', '444', '555', '666'];
$arr_out = [];
for($i = 0; $i < count($arr); $i+=2){
$arr_out["{$arr[$i]}"] = "{$arr[$i+1]}";
}
echo "<pre>";
var_dump($arr_out);
echo "</pre>";
VgV
2017-10-08 11:02:47 +08:00
试试 array_flip($array);
VgV
2017-10-08 11:14:10 +08:00
哦,刚才没注意看,我还以为是把值改为名呢。
你下面想得到的结果是必须借用循环来排序了,没有更简单的了。
cnqncom
2017-10-08 11:17:10 +08:00
感谢各位
lujjjh
2017-10-08 11:18:50 +08:00
$pairs = array_chunk(['111', '222', '333', '444', '555', '666'], 2);
$keys = array_column($pairs, 0);
$values = array_column($pairs, 1);
$result = array_combine($keys, $values);

print_r($result);

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/395895

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX