我正在使用php构建一个JSON文件,我想将$ Array2的ID与Array1匹配,并显示array1的ID的匹配值。我怎样才能做到这一点?请参阅以下代码:
$array1 = array(
'1' => 'a',
'2' => 'b',
'3' => 'c',
'4' => 'd'
);
$string = "1,3|2,3|1,4";
$array2 = explode('|', $string);
$foo = '';
foreach ($array2 as $item) {
$foo .= '{' . $item . '},';
}
echo $foo;
结果显示 - {1,3},{2,3},{1,4},
但是
我想要结果
{a,c},{b,c},{a,d}
非常感谢。
答案 0 :(得分:0)
<?php
function answer($string, $ids) {
$pairs = explode('|', $string);
return implode(',', array_map(function($pair) use ($ids) {
// Get the first and second ID from the pair.
list($x, $y) = explode(',', $pair);
// Fetch from the other array and join them.
return sprintf('{%s,%s}', $ids[$x], $ids[$y]);
}, $pairs));
}
echo answer("1,3|2,3|1,4", array(
'1' => 'a',
'2' => 'b',
'3' => 'c',
'4' => 'd'
));
// {a,c},{b,c},{a,d}
答案 1 :(得分:0)
我猜是这样的:
foreach ($array2 as $items) {
$values = implode(',', array_map(function($i) use ($array1) {
return $array1[$i];
}, explode(',', $items)));
$foo .= "{" . $values. "},";
}
array_map
中的函数将$array2
中的数字转换为$array1
中的相应值。