组合包含重复值的数组,其中array_component不适用


Combining arrays containing duplicated values where array_combine is not applicable

我有这个数组:

Array ( [0] => Post Slider [1] => Post Slider Wide [2] => Post Slider ) 

第二个阵列:

Array ( [0] => Tools Sliders [1] => Tools Sliders [2] => modules-test ) 

当我使用PHP函数array_component时,它不包括重复项,如下所示:

Array ( [Post Slider] => modules-test [Post Slider Wide] => Tool Sliders ) 

我很困惑如何获得这样的期望结果(不剥离重复项,完成一对一关系(:

Array ( [Post Slider] => Tools Sliders [Post Slider Wide] => Tools Sliders [Post Slider] => modules-test) 

如果有任何帮助和建议,我将不胜感激。。

谨致问候,Codex

无论您要做什么,输出数组中都不会有重复的键。键总是唯一的。

唯一的解决方案是为键分配一个数组,例如,有两个值。

$keys   = array ( 'Post Slider', 'Post Slider Wide', 'Post Slider' );
$values = array ( 'Tools Sliders', 'Tools Sliders', 'modules-test' );
$output = array();
$size = sizeof($keys);
for ( $i = 0; $i < $size; $i++ ) {
    if ( !isset($output[$keys[$i]]) ) {
        $output[$keys[$i]] = array();
    }
    $output[$keys[$i]][] = $values[$i];
}
$count1 = count($array1);
$count2 = count($array2);
$array = array();
if($count1==$count2){
    foreach($array1 as $i=>$val){
        $array[]=array($val,$array2[$i]);
    }
}

您将获得:

Array (
 [0] => Array(
         [0] => Post Slider
         [1] => Tools Sliders
       )
 ............
)