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

时间:2019-07-02 09:34:20

标签: php arrays codeigniter multidimensional-array codeigniter-3

我有两个这样的数组:

&&

我正在使用此函数基于gunicorn --bind=0.0.0.0 --timeout 600 configs.wsgi && pip install -r requirements.txt && python manage.py migrate --settings=configs.base_settings领域对数组执行左连接:

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

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

我这样调用函数:

UserID

这是输出:

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);

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

1 个答案:

答案 0 :(得分:1)

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

 func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        // reset cell state
        cell.accessoryType = .none  // (if you needed)
        tableView.deselectRow(at: indexPath, animated: false)

        // if need select
        cell.accessoryType = .checkmark // (if you needed)
        tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none)
    }

// method work fine when tap cell 
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath)

输出:-{https://3v4l.org/TCnBb

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