2013-06-26 5 views
0

У меня есть два массива:PHP | Сравнение двух массивов

$ arr_order:

Array 
    (
     [0] => Array 
      (
       [qty] => 5 
       [id] => 2 
       [sku] => Model 2 
      ) 

     [1] => Array 
      (
       [qty] => 2 
       [id] => 3 
       [sku] => Model 1 
      ) 
    ) 

$ arr_stock:

Array 
(
    [0] => Array 
     (
      [id] => 2 
      [qty] => 2 
     ) 

    [1] => Array 
     (
      [id] => 3 
      [qty] => 2 
     ) 

) 

Как я могу сравнить эти два массива, используя foreach цикл?

Пример: , если $arr_order[0][qty] =5 > $arr_stock[0][qty] = 2 ...

возвращает третий массив:

$ arr_stock_available:

Array 
    (
     [0] => Array 
      (
       [id] => 2 
       [qty] => 2 
      ) 
    ) 
+0

Подсказка: 'foreach ($ arr_order as $ i => $ val) $ arr_stock [$ i] ['qty'] ...' – deceze

+0

Используйте array_diff для получения различий: http://php.net/manual /en/function.array-diff.php – Gimmy

ответ

1
$i = 0; 
$arr_stock_available = array(); 
foreach($arr_order as $data){ 
    if($data['qty'] > $arr_stock[$i]['qty']){ 
     $arr_stock_available[] = $arr_stock[$i]; 
    } else { 
     $arr_stock_available[] = $data; 
    } 
    $i++; 
} 

Используйте приведенный выше код.

+0

Это не совсем правильно. – deceze

+0

@deceze Как вы можете сказать, что «кажется не совсем правильным» –

+0

Во-первых, вы никогда не увеличиваете '$ i', во-вторых, OP хотел разницу между значениями запаса. – deceze