比较数组,请指出正确的方向

时间:2011-03-27 14:58:48

标签: php arrays

所以我想做的是将银行交易与我的数据库中的订单进行比较,如果匹配,则将订单状态更改为已确认。

交易以xml格式

$transaction->user-number //this is the social security number of the one who made the transaction
$transaction->amount //this is the amount transfered

我需要将用户编号与与数据库中的订单关联的用户编号进行比较。 我可以通过使用这些数字创建两个数组并使用array_intersect来查找数据库和事务xml中存在的数字。

现在,我将拥有已进行交易的用户编号,但我仍需要查看他们是否转移了正确的金额。

我将能够完成这个但是我觉得有一个更简单的解决方案,使用user-number作为数组中的索引,将amount作为值,并创建两个这样的数组并进行比较。

在我写一些复杂,缓慢和凌乱的代码之前,有没有人可以帮助我。

由于

1 个答案:

答案 0 :(得分:0)

希望这会让你走上正轨:

class Order
{

    private $user = null;
    private $amt = null;

    public function __construct($user, $amt)
    {
        $this->user = $user;
        $this->amt = $amt;
    }

    public function getUser()
    {
        return $this->user;
    }

    public function equals($transaction)
    {
        if ($this->user == $transaction->usernumber &&
                $this->amt == $transaction->amount) {
            return true;
        }
        return false;
    }

}

// an empty array to hold the completed orders
$completed = array();

// loop over orders
foreach($orders as $order) {

    // create a new order object
    $order = new Order($order->user, $order->amount);

    // loop over all transactions
    foreach($transactions as $transaction) {

        // if transactions is equal to our order then
        // add it to the list of completed orders
        if($order->equals($transaction)) {
            $completed[] = $order;
        }
    }
}

这会为您的所有订单创建一个小包装类,然后允许您将订单与交易进行比较,如上所述。

我希望这会有所帮助。