2016-07-21 12 views
-2

Wie ich durch Komma das Ergebnis array_diff getrennt werde ich diesen Code versucht, aber es gab mir Warnung: explode() erwartet Parameter 2 String zu sein, Array geben Warning: Invalid argument für foreach geliefert()Wie werde ich implodieren das Ergebnis array_diff

<?php 
    $row['IMEI_MX'] = '123,222,333'; 
    $row2["IMEI_MX"] = '123,222'; 
    $imei = $row["IMEI_MX"]; 
    $imeiserial = explode(',', $imei); 
    $imeitransfer = $row2["IMEI_MX"]; 
    $imeitransferserial = explode(',', $imeitransfer); 

    $a1 = $imeiserial; 
    $a2 = $imeitransferserial; 

    $result = array_diff($a1,$a2); 
    $separate = implode(' ', $result); 
foreach($separate as $is){ 

    echo $is; 

} 
+0

So viele unnötige Variablen verwenden, keine Notwendigkeit foreach versuchen ... !!! Versuchen Sie '$ seperate = implode (',', $ result);' line und iterate '$ result' in foreach() – jitendrapurohit

+0

nicht in der Lage zu sein, die Stachelvariable in foreach foreach ($ seperate as $ is) {} an foreach ($ result as $ ist) {} – JYoThI

+0

versuchen, dies zu lesen http://www.w3schools.com/php/func_string_explode.asp und http://www.w3schools.com/php/func_string_implode.asp – JYoThI

Antwort

0

Ich glaube, Sie wollen einfach nur die values von first string zeigen, welche nicht in second string.

Versuchte dieses

<?php 
    $row['IMEI_MX'] = '123,222,333,444'; 
    $row2["IMEI_MX"] = '123,222'; 
    $imei = $row["IMEI_MX"]; 
    $imeiserial = explode(',', $imei); 
    $imeitransfer = $row2["IMEI_MX"]; 
    $imeitransferserial = explode(',', $imeitransfer); 

    $a1 = $imeiserial; 
    $a2 = $imeitransferserial; 

    $result = array_diff($a1,$a2); 
    $sting = implode(',',$result); 
    echo $sting; 
?> 

Es führt als

333,444 
+0

Ich möchte das Ergebnis ist 333,444 –

+0

@CarlosJhonmanlulu Danke – user1234

0

Verwendung implodieren, ist es die entgegengesetzte Funktion, die Sie verwenden.

+0

Warnung: Es wurde ein ungültiges Argument für foreach() in C: \ xampp \ htdocs \ excel \ tryy.php in Zeile angegeben 68 –

+0

In jedem Fall wird ein Array benötigt. Was möchtest du wissen? $ getrennt als Array oder als String? –

0

Verwendung implodieren kommagetrennte Array Werte

$separate = implode(',', $result); 
0

Explode wird verwendet zum Konvertieren einer Zeichenfolge in Array zu erhalten, während das Trennzeichen angeben. Implodieren ist das Gegenteil - Sie geben den Kleber zum Konvertieren eines Arrays in eine Zeichenfolge an.

In Ihrem Fall brauchen Sie keine explode nach array_diff, weil das Ergebnis selbst ein Array ist. Es ist nicht nötig, etwas zu konvertieren. So müssen Sie nur diese Zeile vor dem foreach zu entfernen:

foreach($result as $is){ 
    echo $is; 
} 

Wenn Sie in der foreach implodieren verwenden, ist es ein Fehler Durchführungen, weil Sie eine Schleife durch einen String (das Ergebnis der implodieren Operation versucht,) und die foreach-Operation erwartet ein Array.

UPDATE:

den obigen Code aus, wenn Sie alle Elemente des resultierenden Array Echo wollen. Wenn Sie das Array als String, getrennt durch Komma, anzeigen möchten, müssen Sie mit implode gehen, aber foreach danach abmelden.

$separate = implode(',', $result); 
echo $separate; 
+0

es immer noch nicht die Trennung durch Komma, dass ich wollte :( –

+0

Was möchten Sie erreichen? Wenn Sie das Array in eine Zeichenfolge konvertieren möchten, dann können Sie keine foreach am Ende tun. In diesem Fall, Sie muss einfach implode tun und das Skript stoppen – trajchevska

+0

Überprüfen Sie die aktualisierte Antwort Ihre Anfrage ist sehr verwirrend, Sie müssen klar machen, was Sie in Ihren Fragen erreichen wollen. – trajchevska

0

diese nur implode

<?php 


$row['IMEI_MX'] = '123,222,333,444'; 
$row2["IMEI_MX"] = '123,222'; 
$imei = $row["IMEI_MX"]; 
$imeiserial = explode(',', $imei); 
$imeitransfer = $row2["IMEI_MX"]; 
$imeitransferserial = explode(',', $imeitransfer); 

$a1 = $imeiserial; 
$a2 = $imeitransferserial; 

$result = array_diff($a1,$a2); 

echo implode(',',$result); 

?>