在PHP上有没有办法可以获得$input
数组中字符串的排列:
$input = array(3) {
[0]=>
string(3) "one"
[1]=>
string(3) "two"
[2]=>
string(5) "three"
}
然后使用$reference
数组作为参考
$reference = array(3) {
[0]=>
array(2) {
[0]=>
string(1) "2"
[1]=>
string(3) "two"
}
[1]=>
array(2) {
[0]=>
string(1) "3"
[1]=>
string(5) "three"
}
[2]=>
array(2) {
[0]=>
string(1) "1"
[1]=>
string(3) "one"
}
}
结果是$output
数组?
$output = array(3) {
[0]=>
string(3) "1"
[1]=>
string(3) "2"
[2]=>
string(5) "3"
}
答案 0 :(得分:2)
您可以使用array_column
通过第二列("两个","三个"等)重新索引参考数组。
$words = array_column($reference, 0, 1);
然后通过在重建索引数组中查找与$input
中每个值对应的键来获取输出。
$output = array_map(function($x) use ($words) {
return $words[$x];
}, $input);
答案 1 :(得分:0)
您的用例不是很清楚,但我可以使用array_flip
$input = ['one','two','three'];
$flipped = array_flip($input);
echo $flipped['one']; //0 - arrays in php are zero based
echo $flipped['three']; //2 - arrays in php are zero based
如果你真的需要所描述的$reference
数组,那么一个简单的循环就可以了:
$reference=[];
foreach($input as $key=>$value)
$reference[]=[$key+1, $value];