PHP数组映射到另一个数组

时间:2014-05-14 20:16:52

标签: php arrays map array-map

我需要映射

Array
(
    [0] => Array
        (
                [cid] => 1
                [value] => red
        )

    [1] => Array
        (
                [cid] => 2
                [value] => green
        )

    [2] => Array
        (
                [cid] => 3
                [value] => pink
        )

    [3] => Array
        (
                [cid] => 4
                [value] => yellow
        )
)

要:

Array
(
    [0] => 2
    [1] => 3
    [2] => 1
)

我需要映射second数组值[0] => 2到first数组中的cid。换句话说,我需要2来映射到值绿色。

有任何帮助吗?谢谢。

2 个答案:

答案 0 :(得分:3)

我首先将第一个数组更改为更容易检查的内容。

<?php
$temp = array();
foreach ($array1 as $val) {
  $temp[$val['cid']] = $val['value'];
}
?>

现在你有一个数组:

$temp[1] = "red";
$temp[2] = "green";
$temp[3] = "pink";
$temp[4] = "yellow";

然后你可以在第二个数组中轻松使用它

<?php
$new= array();
foreach ($array2 as $key=>$val) {
  $new[$key] = $temp[$val];
}
?>

Codepad example

答案 1 :(得分:2)

PHP&gt; = 5.5.0

$colors = array_column($first, 'value', 'cid');

foreach($second as $value) {
    if(isset($colors[$value])) {
        echo $colors[$value];
    }
}

$first是您的第一个数组,$second显然是第二个。