函数模拟数组上的左联接在PHP中无法正常工作

编程入门 行业动态 更新时间:2024-10-25 10:23:11
本文介绍了函数模拟数组上的左联接在PHP中无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有两个这样的数组:

$left = [ ['UserID' => 6835406], ['UserID' => 8418097], ]; $right = [ ['Amount' => 0.00, 'UserID' => 6835406], ['Amount' => 0.00, 'UserID' => 8418097] ];

我正在使用此功能基于UserID领域在数组上执行左连接:

I'm using this function to perform a left join on the arrays based on the UserID feild :

function left_join_array($left, $right, $left_join_on, $right_join_on = NULL){ $final= array(); if(empty($right_join_on)) $right_join_on = $left_join_on; foreach($left AS $k => $v){ $final[$k] = $v; foreach($right AS $kk => $vv){ if($v[$left_join_on] == $vv[$right_join_on]){ foreach($vv AS $key => $val) $final[$k][$key] = $val; } else { foreach($vv AS $key => $val) $final[$k][$key] = NULL; } } } return $final; }

我这样调用该函数:

$out = $this->left_join_array($left,$right,'UserID','UserID'); echo "<pre>";print_r($out);

这是输出:

Array ( [0] => Array ( [UserID] => [Amount] => ) [1] => Array ( [UserID] => 8418097 [Amount] => 0.00 ) )

但是所需的输出应该是这样的:

but the desired output should have been like this :

Array ( [0] => Array ( [UserID] => 6835406 [Amount] => 0.00 ) [1] => Array ( [UserID] => 8418097 [Amount] => 0.00 ) )

我的代码有什么问题? 为什么不提供所需的输出. 任何建议都会有所帮助.

What's wrong with my code? Why doesn't it give the desired output. Any suggestions would be helpful.

推荐答案

我不知道为什么要编写这么长的代码,如下所示:

I don't know why you did so long code, do like below:

$finalArray = array(); foreach($left as $lft){ foreach($right as $rgt){ if($lft['UserID'] == $rgt['UserID']){ $finalArray[$lft['UserID']]['UserID'] = $lft['UserID']; $finalArray[$lft['UserID']]['Amount'] = (isset($rgt['Amount']) ? $rgt['Amount'] : NULL); break; }else{ $finalArray[$lft['UserID']]['UserID'] = $lft['UserID']; $finalArray[$lft['UserID']]['Amount'] = NULL; } } } $finalArray = array_values($finalArray); var_dump($finalArray);

输出:- 3v4l/TCnBb

您也可以使用功能方法: 3v4l/aLWij

You can go for functional approach too:3v4l/aLWij

更多推荐

函数模拟数组上的左联接在PHP中无法正常工作

本文发布于:2023-10-12 16:38:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1485284.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   无法正常   函数   工作   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!