从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);
问题在于我有错误的特性,事实上,我得到了第二个数组的第一个特征,而我想要讨论颜色的特征。
答案 0 :(得分:0)
您可以使用array_intersect_key
,array_replace
,array_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";