2016-12-06 3 views
1

私は配列に値を追加したい、そして、配列の中でこれらの配列を使いたい。コードは下にあります。私はどこで間違いをしていますか?php array_pushとarray_intersect

$array =['1,2,3,4','3,4,5','2,3']; 

$arr2 = []; 
$common = []; 

for($i=0; $i<count($array); $i++) 
{ 
    $arr1 = []; 
    if($i==0) 
    { 
     array_push($arr1, $array[$i]); 
     array_push($arr2, $array[$i]); 
     $common = array_intersect($arr1,$arr2); 
    } 
    else 
    { 
     array_push($arr1, $array[$i]); 
     $common = array_intersect($arr1,$common); 
    } 

    print_r($common); 
} 

出力がです:

Array ( 
    [0] => 1,2,3,4 
) 
Array () 
Array () 

私はこのようにしたい:

Array ( 
    [0] => 1,2,3,4 
) 
Array(
    [0] => 3,4 
) 
Array(
    [0] => 3 
) 

おかげで、

+0

はあなたが何であるかに多くの洞察力を与えることができます試してみてくださいあなたが使用したい機能だけでなく、達成しようとしています。たとえば、 - "これとこの配列の違いが必要です"。 – vuryss

+0

結果的に各ペアを比較したいですか? – RomanPerekhrest

+0

$ arrayは常に変更可能です。 $ arrayに値を追加すると、他の値と最後の値が異なるようにしたい。 – Halim

答えて

1

はこの

<?php 

$array =['1,2,3,4','3,4,5','2,3']; 
$arr1 = []; 

for($i=0; $i<count($array); $i++) 
{ 
    $j='arr'.$i; 
    $j= []; 
    if($i==0){ 
    array_push($j, $array[$i]); 
    } 
    else{ 
     $a = explode(',',$array[$i-1]); 
     $b = explode(',',$array[$i]); 
     $c = array_intersect($a,$b); 
     $d= implode(',',$c); 
     array_push($j, $d); 
    } 
    echo "<pre>"; print_r($j); 

} 
+0

それだけです!ありがとうございました – Halim

0

あなたはarray_intersectを悪用されています。このメソッドは、配列内の値が単一の値でない場合に機能します。
あなたが望む方法で使用するには、カンマで値を分割し、別々の値として挿入する必要があります。たとえば: 値:'1,2,3,4'のように挿入する必要があります(ループなどなし)

$array = ['1', '2', '3', '4']; 

はソリューション:

<?php 
$array =['1,2,3,4','3,4,5','2,3']; 

$arr1 = array(); 
$arr2 = array(); 
$common = array(); 

$arr1 = explode(',', $array[0]); 
$arr2 = explode(',', $array[1]); 

$common =array_intersect($arr1, $arr2); 
print_r($common); 

$arr3 = explode(',', $array[2]); 
$common2 = array_intersect($common, $arr3); 
print_r($common2); 

?> 
関連する問題