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 显示错误数组到字符串的转换的主要内容,如果未能解决你的问题,请参考以下文章

PHP使用array_unique对二维数组去重处理

array_unique() 去重复

php数组的重复值如何过滤掉

如何在数组数组上使用 array_unique?

array_unique后,数组本身的值并不会变

几个有用小函数(数组去重,数组字符串排序)