PHP Implode数组唯一失败

时间:2014-01-05 03:37:54

标签: php implode array-unique

我一直试图在array_unique中破坏2个变量而没有成功。 2个变量进行mysql调用,每个变量返回数据ok。放在一个数组中也可以从两者中返回数据,但是当它们被array_unique内爆时,它们会有重复的数据,我想在返回时清理它们。建议将不胜感激。

$a = 'mysql string 1';// basically words A, B, C
$b = 'mysql string 2';// basically words D, A, E
$a_b_array = array($a, $b);
sort($a_b_array);
$a_b_string = implode("\n", array_unique($a_b_array));

echo $a_b_string; //returns $a and $b with duplicated data

我也试过SORT_REGULAR,不要认为这是问题所在:

//sort($a_b_array);
$a_b_string = implode("\n", array_unique($a_b_array, SORT_REGULAR);

预期结果为:A,B,C,D,E

2 个答案:

答案 0 :(得分:3)

首先,您要处理两个元素的数组。您需要先将每个元素分解为数组。

<?php
// define your inputs    
$a = 'A, B, C';
$b = 'D, A, E';

// explode the string into arrays and merge them
$a_b_array = array_merge(explode(",", $a), explode(",", $b));

// trim off any pesky leading or trailing spaces from the elements
$a_b_array = array_map("trim", $a_b_array);

sort($a_b_array);
// tape the elements back together separated by a newline
$a_b_string = implode("\n", array_unique($a_b_array));
echo $a_b_string; 

答案 1 :(得分:1)

$a = 'mysql string 1'; // basically words A, B, C
$b = 'mysql string 2'; // basically words D, A, E

$a_explode = explode(" ", $a);
$b_explode = explode(" ", $b);

$a_b_array =  array_unique(array_merge($a_explode, $b_explode));
sort($a_b_array);
var_dump($a_b_array);
echo implode(", ", $a_b_array);

输出:

array (size=4)
  0 => string '1' (length=1)
  1 => string '2' (length=1)
  2 => string 'mysql' (length=5)
  3 => string 'string' (length=6)
1, 2, mysql, string