ঠিকানাগুলির তুলনা করতে হয়েছিল - এর মধ্যে একটি সবেমাত্র তৈরি হয়েছিল (সংরক্ষণ করা হয়নি)। সম্ভবত এটি কাউকে সহায়তা করে:
@ আলফাওয়ালফ উত্তরের ভিত্তিতে:
public function isDifferentAddresses(Mage_Customer_Model_Address $adr1, Mage_Customer_Model_Address $adr2, array $excludeKeys = array())
{
if (!count($excludeKeys)) {
$excludeKeys = array(
'entity_id',
'entity_type_id',
'attribute_set_id',
'is_active',
'increment_id',
'parent_id',
'created_at',
'updated_at',
'customer_id',
'customer_address_id',
'quote_address_id',
'region_id',
'address_type',
'is_default_billing',
'is_default_shipping',
'save_in_address_book'
);
}
$excludeKeys = array_flip($excludeKeys);
$adr1Filtered = array_diff_key($adr1->getData(), $excludeKeys);
$adr2Filtered = array_diff_key($adr2->getData(), $excludeKeys);
$diff = array_diff_assoc($adr1Filtered, $adr2Filtered);
return !empty($diff);
}
20 01 2016 সম্পাদনা করুন
আমি উপরের সংস্করণটি পোস্ট করার পরে আমি নিম্নলিখিত পদ্ধতিটি ব্যবহার করছি এবং এটি আমার পক্ষে কাজ করে - ভেবেছিল এটি কারও সাহায্য করতে পারে:
/**
* returns if address 1 is different to address 2
*
* @param Mage_Customer_Model_Address $adr1
* @param Mage_Customer_Model_Address $adr2
* @param array $excludeKeys
*
* @return bool
*/
public function isDifferentAddresses(Mage_Customer_Model_Address $adr1,
Mage_Customer_Model_Address $adr2, array $excludeKeys = array()
) {
if (!count($excludeKeys)) {
$excludeKeys = array(
'prefix',
'suffix',
//'region',
//'region_id',
'entity_id',
'vat_id',
'entity_type_id',
'attribute_set_id',
'is_active',
'increment_id',
'parent_id',
'created_at',
'updated_at',
'customer_id',
'customer_address_id',
'quote_address_id',
'address_type',
'is_default_billing',
'is_default_shipping',
'save_in_address_book'
);
}
$excludeKeys = array_flip($excludeKeys);
$adr1Filtered = array_diff_key($adr1->getData(), $excludeKeys);
$adr2Filtered = array_diff_key($adr2->getData(), $excludeKeys);
$diff = array_diff_assoc($adr1Filtered, $adr2Filtered);
return !empty($diff);
}
array_diff_assoc
কারণ অ্যারে_ডিফ কেবল মানগুলির সাথে তুলনা করে, তাই আপনি উদাহরণস্বরূপ যদি প্রথম নাম এবং পদবি পরিবর্তন করেন তবে ঠিকানাগুলি এখনও সমান হিসাবে বিবেচিত হবে