array_unique 显示错误数组到字符串的转换
Posted
技术标签:
【中文标题】array_unique 显示错误数组到字符串的转换【英文标题】:array_unique showing error Array to string conversion 【发布时间】:2014-07-31 00:59:41 【问题描述】:为了获得唯一值,我使用了唯一值。以下是我正在使用的代码
array_unique($results_external);
aasort($results_external,"created_on");
$returns_buy_external[]=array_reverse($results_external, true);
如果我使用这样的代码,下面是我得到的错误
遇到 php 错误 严重性:通知
消息:数组到字符串的转换
文件名:models/product_model.php
行号:3550
3550 行是 array_unique($results_external);
谁能帮帮我,为什么会出现这样的错误以及如何解决?
results_external 示例格式如下
Array
(
[0] => Array
(
[id] => 144
[name] => test
[slug] => test
[images] => "9eebd0f69772dd3bdf8c787864437c85":"filename":"9eebd0f69772dd3bdf8c787864437c85.png","alt":"TRESemme Smooth and Shine","caption":""
[track_stock] => 1
[seo_title] => ttt
[qty] => 0
[product_type] => 0
[price] => 0.00
[saleprice] => 0.00
[external_links] => http://test.com
[external_price] => 285.00
[external_saleprice] => 285.00
[created_on] => 2013-11-08 15:03:24
)
)
【问题讨论】:
3550行是array_unique($results_external); $results_external 的内容是什么? 请Print_r($results_external)
发帖
我打印了请检查一下
@Naruto 问题通过添加 array_map("unserialize", array_unique(array_map("serialize", $input))); 解决
【参考方案1】:
根据the docs,array_unique
默认将元素作为字符串进行比较。这意味着您的 2D 数组正在转换为字符串数组(全部为 "Array"
并生成数组到字符串的通知),或者只有一个可以作为唯一返回。
使用SORT_REGULAR
标志来比较元素,但请注意,只有具有相同键值对的数组才被视为相等。
示例:
print_r(array_unique($array, SORT_REGULAR));
【讨论】:
升级(finally)到 php7 后有很多错误需要清理,这个小金块解决了其中的一些问题!以上是关于array_unique 显示错误数组到字符串的转换的主要内容,如果未能解决你的问题,请参考以下文章