我将如何用逗号分隔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;
}
答案 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);
?>