2011-09-11 43 views
0

我想将数组中的值合并为另一个数组,而不是另一个数组输出到另一个数组中。我的问题是最终输出总是另一个数组,而我需要的是使用短划线( - )将其他值附加到第一个值,依此类推:有条件地组合PHP数组

如果所有都存在,应该输出ABC,如果两个或者组合= AB,AC,BC,否则只是一个或b或C

$classes = array('a', 'b', 'c'); 

    foreach ($classes as $class) { 
    if (!empty($block[$class])) { 
     // If all is present, should output a-b-c, if two = a-b, a-c, b-c, otherwise simply a or b or c 
     $variables['classes_array'][] = ....; 
    } 
    } 
+0

为什么不直接写在一个if语句? – rlemon

+0

看起来像[array_intersect_key](http://www.php.net/manual/en/function.array-intersect-key.php)可能会帮助你,你想要什么... – jswolf19

+0

谢谢,我用implode,似乎工作,但它仍然产生了不必要的:a,bc,abc都是输出,当所有的都存在时,而我所需要的只是abc :( – swan

回答

1

我认为这会做你想要什么:

$classes = array('a', 'b', 'c'); 

$variables = array(); 

foreach($classes as $class) { 

    if(in_array($class, $block)){ 
     $variables[] = $class; 
    } 

} 

$variables = implode('-', $variables); 

echo $variables; 
+0

非常感谢,现在很好。问题,你们说得很好。 – swan