首页 > 解决方案 > 在 PHP5 中的 PHP7 中工作的代码的替代方案是什么

问题描述

我有一个在 PHP7 上运行但不在 PHP 5 中运行的 PHP 代码,这是我的服务器中的 PHP 版本,这是我的代码:

Array (
    [0] => stdClass Object (
        [userId] => 15
        [name] => name0
        [userName] => hh
        [centerName] => center10
    )

    [1] => stdClass Object (
        [userId] => 16
        [name] => name1
        [userName] => test
        [centerName] => center10
    )

    [2] => stdClass Object (
        [userId] => 1
        [name] => name2
        [userName] => ll
        [centerName] => center1
    )
)

$ids = array_unique(array_column($results, 'centerName'));
print_r($ids);

我得到了我在 PHP7 中的预期,但我在 PHP5 中得到了一个空数组。

如何调整我的代码以在 PHP5 中工作?

标签: phparraysfunctionarray-uniquearray-column

解决方案


手册一样,从php7.0 开始添加了使用对象数组作为参数的能力。array_column

在 php5 中,您根本无法使用array_column从对象数组中获取列。所以,你需要使用一些其他的代码,一个简单foreach的例子:

$uniqueValues = [];
foreach ($results as $item) {
    $uniqueValues[$item->centerName] = 1;
}
print_r(array_keys($uniqueValues));

推荐阅读