如何使此PHP函数在规模上更有效? - php

我不知道如何提高效率,并且正在努力应对编码挑战。有什么提示吗?

目的是在数组中返回唯一值。

Test Conditions Which Code Fails

function solution($A) {

    foreach ($A as $key => $value) {

        $searchResults = array_keys($A, $value);

        //print "Total number of $value found in Array is: " . count($searchResults) . "\n";

        $checkNumber = count($searchResults);

        if ($checkNumber == 1) {

            //print "Unique value is: $value\n";
            return $value;

        }

        //print "\n";

    }

}

参考方案

我能想到的最简单的方法是,首先使用array_count_values()计数每个值的出现次数,然后循环遍历结果并返回出现1次的第一个项目。如果未找到,也会返回false。

function solution($a) {
    $counts = array_count_values($a);
    foreach ( $counts as $value => $count ) {
        if ( $count == 1 )  {
            return $value;
        }
    }
    return false;
}

array_count_values()将遍历整个数组一次(在所有情况下都必须这样做),foreach循环将遍历结果直到找到一个项目。

编辑:
如果要使用对象作为数据,则可以通过序列化数据然后按照上述相同的过程轻松解决此问题。使用unserialize()返回数据...

function solution($a) {
    $ser = array_map("serialize", $a);
    $counts = array_count_values($ser);
    foreach ( $counts as $value => $count ) {
        if ( $count == 1 )  {
            return unserialize($value);
        }
    }
    return false;
}

PHP Count数组元素 - php

嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

PHP:获取调用引用的数组名称 - php

假定以下函数并调用:function doSomething( &$someArray ) { // Do something to $someArray } $names=array("John", "Paul", "George", "Ringo"); doSomet…