我将如何破坏array_diff的结果

时间:2016-07-21 06:27:43

标签: php

  

我将如何用逗号分隔array_diff的结果我试过这段代码但它给了我警告:explode()期望参数2是字符串,数组给出   警告:为foreach()提供的参数无效

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

}

5 个答案:

答案 0 :(得分:0)

使用implode,它正在使用相反的功能。

答案 1 :(得分:0)

使用implode获取逗号分隔的数组值

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

答案 2 :(得分:0)

Explode用于将字符串转换为数组,同时指定分隔符。 Implode是相反的 - 您指定用于将数组转换为字符串的粘合剂。

在你的情况下,你不需要在array_diff之后爆炸,因为结果本身就是一个数组。没有必要转换任何东西。所以,你只需要在foreach之前删除该行:

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

当你在foreach中使用implode时,它会通过一个错误,因为你正试图循环一个字符串(implode操作的结果),而foreach操作需要一个数组。

<强>更新

如果要回显结果数组的所有项,请按照上面的代码。如果你想将数组显示为一个以逗号分隔的字符串,你需要使用implode,但是在之后删除foreach。

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

答案 3 :(得分:0)

我认为您只想显示values中不属于first string的{​​{1}}。

试过这个

second string

结果为

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

答案 4 :(得分:0)

尝试这不需要预先使用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);

?>