PHP - 从其他人创建一个数组?

时间:2016-12-13 21:09:22

标签: php

大家好!

从PHP开始,我尝试从今天下午开始如何从两个不同大小的数组创建,第三个数组将这两个数组之间的元素“匹配”。

我有两幅画......

第一种是这种类型(表1):

KEY => COLOR

[0] => green
[1] => blue
[2] => red
[3] => orange
[4] => purple

第二种是这种类型(表2):

COLOR => CHARACTERISTIC

[red] => blood
[golden] => ingot
[orange] => juice
[brown] => wall
[green] => fir
[blue] => sea
[purple] => tunic
[white] => angel
[turquoise] => sea
[gris] => wall
[yellow] => sun
[black] => night

我想得到一个比较这两个数组的PHP脚本,当有“匹配”时,返回相关颜色的值。

这是我正在寻找的结果(表3):

COLOR => CHARACTERISTIC

[green] => fir
[blue] => sea
[red] => blood
[orange] => juice
[purple] => tunic

我试过了:

$min = min(count($tab1main), count($tab2main));
$result = array_combine(array_slice($tab1main, 0, $min), array_slice($tab2main, 0, $min));

print_r($result); 

问题在于我有错误的特性,事实上,我得到了第二个数组的第一个特征,而我想要讨论颜色的特征。

2 个答案:

答案 0 :(得分:0)

您可以使用array_intersect_keyarray_replacearray_flip来获得所需的结果。

<?php

$array_1 = array('green','blue','red','orange','purple');
$array_2 = array('red' => 'blood','golden' => 'ingot','orange' => 'juice','brown' => 'wall','green' => 'fir','blue' => 'sea','purple' => 'tunic','white' => 'angel','turquoise' => 'sea','gris' => 'wall','yellow' => 'sun','black' => 'night');

$array_3 = array_intersect_key(array_replace(array_flip($array_1),$array_2),array_flip($array_1));

var_dump($array_3);

?>

答案 1 :(得分:-1)

你可以尝试多维数组

$[0]['green']="fir";