2016-12-06 2 views
1

Ich möchte Wert zu Array hinzufügen und dann möchte ich diese Arrays in Array-Schnittpunkt verwenden. Die Codes sind unten aufgeführt. Wo mache ich Fehler?php array_push und 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); 
} 

Ausgang ist:

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

ich dies sein wollen:

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

Danke,

+0

Können Sie mehr Einblick geben in das, was Sie sind '1,2,3,4' sollte eingefügt werden versuchen zu erreichen, nicht nur welche Funktion Sie verwenden möchten. Zum Beispiel - "Ich möchte den Unterschied zwischen diesem und diesem Array". – vuryss

+0

willst du jedes Paar konsequent vergleichen? – RomanPerekhrest

+0

$ Array ist immer änderbar. Wenn Sie einen Wert zu $ ​​-Array hinzufügen, möchte ich den letzten Wert von anderen unterscheiden. – Halim

Antwort

1

Versuchen

<?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

Das war's! Vielen Dank – Halim

0

Sie array_intersect missbräuchlich. Diese Methode funktioniert bei Werten in einem Array, die nicht auf einem einzelnen Wert basieren.
Um es wie gewünscht zu verwenden Sie sollten Ihre Werte durch Komma trennen und sie als separate Werte einfügen. Zum Beispiel: Wert:

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

Solution (ohne Schleifen usw.): Diese

<?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); 

?> 
Verwandte Themen