Есть два массива
Array
(
[firstname] => Тара
[lastname] => Садовский
[telephone] => +389665544121
[email] => pd@gmail.com
[suppliers] => dvdfdsf
[sum_] => 800
[method_delivery] => Новая почта
[region] => 7150812c-9b87-11de-822f-000c2965ae0e
[city] => 09af1b85-22c7-11e4-acce-0050568002cf
[address] => Отделение №1: ул. Московская, 5
[ttn] => 20400045650240
[order_status_id] => 1
[date_modified] => 2017-05-26
[comment] => Коментарий
[customer_id] => 1
[order_id] => 30
[product_name] => Array
(
[0] => Смарn
[1] => Часn
)
[model_product] => Array
(
[0] => Часы
[1] => часы
)
[price] => Array
(
[0] => 7.36
[1] => 8.20
)
[currency] => Array
(
[0] => USD
[1] => USD
)
[total] => Array
(
[0] => 450.00
[1] => 40.00
)
[product_id] => Array
(
[0] => 707
[1] => 749
[2] => 745
[3] => 750
)
[quantity] => Array
(
[0] => 1
[1] => 1
)
[oll_total] => Array
(
[0] => 400.00
[1] => 400.00
[2] => 400.00
[3] => 400.00
)
[order_product_id] => Array
(
[0] => 749
[1] => 750
)
)
Array
(
[firstname] => Тарас
[lastname] => Садовский
[telephone] => +389665544121
[email] => pd@gmail.com
[suppliers] => dvdfdsf
[sum_] => 800
[method_delivery] => Новая почта
[region] => 7150812c-9b87-11de-822f-000c2965ae0e
[city] => 09af1b85-22c7-11e4-acce-0050568002cf
[address] => Отделение №1: ул. Московская, 5
[ttn] => 20400045650240
[order_status_id] => 1
[date_modified] => 2017-05-26
[comment] => Коментарий
[customer_id] => 1
[order_id] => 30
[product_name] => Array
(
[0] => Смарn
[1] => Часn
)
[model_product] => Array
(
[0] => Часы
[1] => часы
)
[price] => Array
(
[0] => 7.36
[1] => 8.20
)
[currency] => Array
(
[0] => USD
[1] => USD
)
[total] => Array
(
[0] => 450.00
[1] => 40.00
)
[product_id] => Array
(
[0] => 707
[1] => 749
[2] => 745
[3] => 750
)
[quantity] => Array
(
[0] => 1
[1] => 1
)
[oll_total] => Array
(
[0] => 400.00
[1] => 400.00
[2] => 400.00
[3] => 400.00
)
[order_product_id] => Array
(
[0] => 749
[1] => 750
)
)
отличаются поля firstname
есть функция array_udiff
которая вычисляет расхождение массивов
public function add_history_edit_order($data){
$orders = $this->db->query("SELECT firstname, lastname, email,
telephone, sum_, ttn, payment_address_1, payment_city, payment_zone,
payment_method, comment, suppliers, order_status_id FROM " . DB_PREFIX
. "order WHERE order_id = '" . $_POST['order_id'] . "'")->row;
$order_product = $this->db->query("SELECT * FROM " . DB_PREFIX .
"order_product WHERE order_id = '" . $_POST['order_id'] . "'")->rows;
$product_name = array();
$model_product = array();
$quantity = array();
$price = array();
$total = array();
$oll_total = array();
foreach($order_product as $value){
$product_name['product_name'][] = $value['name'];
$model_product['model_product'][]= $value['model'];
$quantity['quantity'][]= $value['quantity'];
$price['price'][] = $value['price'];
$total['total'][] = $value['total'];
$oll_total['oll_total'][] = $value['oll_total'];
}
$result = array_merge($orders, $product_name, $model_product, $quantity, $price, $total, $oll_total);
$arr = array_udiff($result, $data, 'add_history_edit_order');
print_r($arr);
//$this->db->query("INSERT INTO " . DB_PREFIX . "history_edit_order SET order_id = '" . $_POST['order_id'] . "', firstname = '" . $firstname . "', lastname = '" . $lastname . "', telephone = '" . $telephone . "', email = '" . $email . "', suppliers = '" . $suppliers . "', sum_ = '" . $sum_ . "', method_delivery = '" . $method_delivery . "', region = '" . $region . "', city = '" . $city . "', address = '" . $address . "', order_status_id = '" . $order_status_id . "', comment = '" . $comment . "', time_history = '" . date('H:i:s') . "', date_history = NOW()");
}`
получаю следующую ошибку array_udiff() expects parameter 3 to be a valid callback,
У вас ошибка из за того что вы приподносите метод add_history_edit_order
класса как функцию.
Пример array_undiff с использованием метода как функцию callback
$arr = array_udiff($result, $data, array($this,'add_history_edit_order'));
И как я увидел из вошего отрезка кода, вы в самом метоте делаете array_udiff и используете сам метод где находиться ваш код.
Это называется рекурсией, я не уверен что это вам нужно но будьте осторожны.
Всем приветУ меня есть поле ввода от 0 до 10, как мне сделать так, что бы в данном поле по умолчанию всегда стояла цифра 0?
Как при помощи WideImage создать изображение размером x на y с прозрачный фоном, для того чтобы в дальнейшем на него наложить другие картинки, другими...