我有2个数组,第一个是$brand2
,它有重复的值Selafone
。我想将数组$brand2
插入$finalarray
而没有重复值,值只出现一次。但我得到了重复价值的$ finalarray ..有人提出任何建议吗?我的代码如下。
$finalarray=array();
$brand='Selafone -Selafone2-Selafone';
$brand2=explode('-', $brand);
for ($i=0; $i<count($brand2); $i++)
{
if (in_array($brand2[$i], $finalarray))
{
echo "kkkkkk";
}
else
{
array_push($finalarray, $brand2[$i]);
}
}
print_r($finalarray);
打印输出$ finalarray是
Array ( [0] => Selafone [1] => Selafone2 [2] => Selafone )
答案 0 :(得分:0)
看起来它对我来说非常好。在输出上更好看(使用var_dump()
),你会注意到看起来像相同值的一些差异。其中一个Selafone
在结果中包含空格。
答案 1 :(得分:0)
使用
array_push($finalarray, trim($brand2[$i]));
而不是
array_push($finalarray, $brand2[$i]);
答案 2 :(得分:0)
试试这个自定义代码......
$finalarray=array();
$brand='Selafone -Selafone2-Selafone';
$brand2=explode('-',$brand);
$num = count($brand2);
$new = array();
for($i=0; $i<$num ; $i++){
$data = $brand2[$i]."<br/>";
foreach($brand2 as $value){
if($value !== $brand2[$i]){
$new = $value;
}
}
}
print_r($new);
&GT?; 试一试
答案 3 :(得分:-2)
试试这个,这是因为空白,所以使用trim($brand2[$i])
。删除空格。
当前解决方案:
<?php
$finalarray=array();
$brand='Selafone -Selafone2-Selafone';
$brand2=explode('-',$brand);
for($i=0;$i<count($brand2);$i++)
{
if(in_array(trim($brand2[$i]),$finalarray))
{
echo "kkkkkk";
}
else
{
array_push($finalarray,trim($brand2[$i]));
}
}
print_r($finalarray);
?>
输出:
kkkkkkArray([0] =&gt; Selafone [1] =&gt; Selafone2)
优化解决方案:
$brand = 'Selafone -Selafone2-Selafone';
$brand2 = explode('-',$brand);
$finalarray = array_unique(array_map('trim', $brand2));
print_r($finalarray);