我有一个这样的数组数组:
Array
(
[userId] => 35
[fieldId] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 1
[4] => 2
[5] => 2
[6] => 1
[7] => 4
)
[educationTitle] => Array
(
[0] => School1
[1] => School2
[2] => 3
[3] => School1
[4] => School2
[5] => School2
[6] => School1
[7] =>
)
)
我想删除每个数组的所有重复项。因此,我希望最终数组如下所示:
Array
(
[userId] => 35
[fieldId] => Array
(
[0] => 1
[1] => 2
[2] => 3
[7] => 4
)
[educationTitle] => Array
(
[0] => School1
[1] => School2
[2] => 3
[7] =>
)
)
我已经尝试过了(按照此答案https://stackoverflow.com/a/307701/1009116的建议):
function multi_unique($updates) {
foreach ($updates as $k=>$na)
$new[$k] = serialize($na);
$uniq = array_unique($new);
foreach($uniq as $k=>$ser)
$new1[$k] = unserialize($ser);
return ($new1);
}
而且没有效果
我也尝试过此操作(如此处推荐-https://stackoverflow.com/a/946300/1009116)
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
而且这只是返回最后一个数组(但是,它应该按原样进行过滤)
我究竟做错了什么???
参考方案
您可以使用 :
$data = array(
'userId' => 35,
'fieldId' => array(
0 => 1,
1 => 2,
2 => 3,
3 => 1,
4 => 2,
5 => 2,
6 => 1,
7 => 4
),
'educationTitle' => array(
0 => 'School1',
1 => 'School2',
2 => 3,
3 => 'School1',
4 => 'School2',
5 => 'School2',
6 => 'School1',
7 => NULL
)
);
print_r(arrayUnique($data));
输出量
Array
(
[userId] => 35
[fieldId] => Array
(
[0] => 1
[1] => 2
[2] => 3
[7] => 4
)
[educationTitle] => Array
(
[0] => School1
[1] => School2
[2] => 3
[7] =>
)
)
使用功能
function arrayUnique($array) {
$input = array_map("unserialize", array_unique(array_map("serialize", $array)));
foreach ( $input as $key => $value ) {
is_array($value) and $input[$key] = arrayUnique($value);
}
return $input;
}
PHP Array重复数据计数 - php我在PHP Array中有标题和语言数据。我需要显示重复的标题计数。请检查以下数组格式。Array ( [0] => Array ( [title] => My_title1 [language] => English ) [1] => Array ( [title] => My_title1 [language] => …
PHP-将2个数组的值连接到1个新数组中 - php我有2个具有相同结构的独立多维数组。例:Array ( [0] => Array ( [uploadData] => 1234 Main St ) [1] => Array ( [uploadData] => 5678 Elm St ) [2] => Array ( [uploadData] => 9879 New St …
用ajax处理php双数组 - php我一直在尝试找出方法-我想将一个array(array())从PHP传递到jQuery。我以前使用单个数组完成过此操作,但从未使用嵌套数组完成过此操作。这是我的PHP代码:$sector_one = array('one' => 0, 'two' => 1, 'three' => …
PHP:检查谁看过发送的电子邮件? - php我正在向某些用户发送电子邮件,并且想知道是谁阅读的,这意味着如果有人阅读了该电子邮件,则将维护一个日志文件,其中包含该用户的电子邮件地址以及日期/时间/ IP。为此,我发送一个带有电子邮件(html模板)的javascript函数,当用户打开该电子邮件时,它仅会警告用户的电子邮件地址,例如:for($n=0; $n<sizeof($checkBox);…
twilio'未知上下文帐户 - php我正在尝试通过Twilio和Php发送一条简单的SMS,但是出现此致命错误, 未捕获的异常“ Twilio \ Exceptions \ TwilioException”,带有消息 的“未知上下文帐户” C:\ xampp \ htdocs \ Twilio \ vendor \ twilio \ sdk \ Twilio \ Rest \ Client.p…