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

时间:2013-04-19 12:47:05

标签: php

我有这个数组:

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

第二个阵列:

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

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

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

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

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

我将不胜感激任何帮助和提示..

此致 法典

2 个答案:

答案 0 :(得分:1)

无论你做什么,你的输出数组都不会有重复的键。钥匙永远是唯一的。

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

$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];
}

答案 1 :(得分:0)

$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
       )
 ............
)