2011-09-11 7 views
0

別の配列ではなく、別の配列に出力する配列の値を、単一の平坦化された値として結合したいと考えています。私の問題は、最終的な出力は常に別の配列ですが、必要なのはダッシュ( - )を使って最初の値に他の値を追加することです。条件付きでPHP配列を結合する

すべてが存在する場合は、出力ABC、いずれかの組み合わせ= AB、AC、BCの2、そうでない場合は、単純または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

ありがとう、私は爆縮を使用したようですしかし、それでもまだ不要なものが生成されています: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