PHP通过特定值比较关联数组

PHP通过特定值比较关联数组,php,mysql,arrays,laravel-4,Php,Mysql,Arrays,Laravel 4,我正在运行两个数据库,SQL和Mongo,当我查询它们以获得所需的模型时,我将其转换为数组 $sql = [1 => ["id" => 1, "num" => "123"], 2 => ["id" => 2, "num" => "456"]]; $mongo = ["id" => 1, "num" => "123"]; 但有时我得到多个数组,有时我只能得到一个数组 我想通过“num”值比较两个数组,并删除差异数组(id为2) 我希望得到一个不同的

我正在运行两个数据库,SQL和Mongo,当我查询它们以获得所需的模型时,我将其转换为数组

$sql = [1 => ["id" => 1, "num" => "123"], 2 => ["id" => 2, "num" => "456"]];
$mongo = ["id" => 1, "num" => "123"];
但有时我得到多个数组,有时我只能得到一个数组

我想通过
“num”
值比较两个数组,并删除差异数组(id为2)

我希望得到一个不同的关联数组:

$result = [1 => ["id" => 2, "num" => "456"]];

有什么想法吗?

我会天真地尝试这样的方法(如果需要,比较应该优化):

编辑:使用php函数的更好解决方案


请提供预期的比较结果。您只需在$sql数组上执行foreach操作,并使用$mongo['num']==$sql\u item['num']删除值,但可能我没有正确理解这个问题
$sql = (isset($sql['id']) ? array(1 => $sql) : $sql; // Always make multi-dimensionnal array
$mongo = (isset($mongo['id']) ? array(1 => $mongo) : $mongo; // Always make multi-dimensionnal array

$results = array();
foreach($sql as $sq)
    foreach($mongo as $mq)
        if ($sq['num'] != $mq['num'])
             $results[] = $mq;
$sql = (isset($sql['id']) ? array(1 => $sql) : $sql; // Always make multi-dimensionnal array
$mongo = (isset($mongo['id']) ? array(1 => $mongo) : $mongo; // Always make multi-dimensionnal array

$results = array_udiff($sql, $mongo, function($a, $b) { return $a['num'] - $b['num']; });