2012-07-02 3 views
0

Как сравнить текущее значение массива с предыдущим значением массива. Пример, если у меня есть следующий массив и вы хотите сравнить [BM1367 PD C 70] [ST00576] ['transferfrom'] с предыдущий массив, который является [BM1367 PD B 85] [ST00576] ['transferfrom']?сравнение значения массива с предыдущим значением массива

[BM1367 PD B 85] => Array 
     (
      [ST00576] => stdClass Object 
       (
        [transferfrom] => 102 
        [transferto] => 66 
        [BR_ID] => 102 
        [refno] => 

       ) 

      [OT01606] => stdClass Object 
       (
        [transferfrom] => 102 
        [transferto] => 66 
        [BR_ID] => 66 
        [refno] => 102 - ST00576 

       ) 

     ) 

    [BM1367 PD C 70] => Array 
     (
      [ST00576] => stdClass Object 
       (
        [transferfrom] => 102 
        [transferto] => 66 
        [BR_ID] => 102 
        [refno] => 

       ) 

      [OT01606] => stdClass Object 
       (
        [transferfrom] => 102 
        [transferto] => 66 
        [BR_ID] => 66 
        [refno] => 102 - ST00576 

       ) 

     ) 

    [BM1367 PD C 85] => Array 
     (
      [ST00576] => stdClass Object 
       (
        [transferfrom] => 102 
        [transferto] => 66 
        [BR_ID] => 102 
        [refno] => 

       ) 

      [OT01606] => stdClass Object 
       (
        [transferfrom] => 102 
        [transferto] => 66 
        [BR_ID] => 66 
        [refno] => 102 - ST00576 

       ) 

     ) 

    [BM1367 PD D 85] => Array 
     (
      [ST00576] => stdClass Object 
       (
        [transferfrom] => 102 
        [transferto] => 66 
        [BR_ID] => 102 
        [refno] => 

       ) 

      [OT01606] => stdClass Object 
       (
        [transferfrom] => 102 
        [transferto] => 66 
        [BR_ID] => 66 
        [refno] => 102 - ST00576 

       ) 

     ) 

) 
+0

Я пробовал: Еогеасп ($ передача в $ docno => $ transfer_details) { // делать вещи здесь } $ previous_br = ток (array_map ('pick_transferfrom', $ передача)); \t} – redcoder

ответ

0

Вы спросили:

Как сравнить текущее значение массива со значением предыдущего массива

Я думаю, вы можете захотеть взглянуть на следующие функции PHP

  1. ток() - http://www.php.net/manual/en/function.current.php
  2. предыдущий период() - http://www.php.net/manual/en/function.prev.php
  3. следующая() - http://php.net/manual/en/function.next.php

Например:

<?php 
$transport = array('foot', 'bike', 'car', 'plane'); 
$mode = current($transport); // $mode = 'foot'; 
$mode = next($transport); // $mode = 'bike'; 
$mode = next($transport); // $mode = 'car'; 
$mode = prev($transport); // $mode = 'bike'; 
$mode = end($transport);  // $mode = 'plane'; 
?> 

Я был в состоянии использовать те по формуле вычисления, работа великолепна! Это также полезно при сравнении текущего с предыдущим или следующим массивом на вашем.

0

У вас есть массив STD class objects в этом случае вы можете сравнить элементы следующим образом: Предположим, массив, который вы предоставили находится внутри другого массива

$tempArray = { 


     [BM1367 PD B 85] => Array 
      (
       [ST00576] => stdClass Object 
        (
         [transferfrom] => 102 
         [transferto] => 66 
         [BR_ID] => 102 
         [refno] => 

        ) 

       [OT01606] => stdClass Object 
        (
         [transferfrom] => 102 
         [transferto] => 66 
         [BR_ID] => 66 
         [refno] => 102 - ST00576 

        ) 

      ) 

     [BM1367 PD C 70] => Array 
      (
       [ST00576] => stdClass Object 
        (
         [transferfrom] => 102 
         [transferto] => 66 
         [BR_ID] => 102 
         [refno] => 

        ) 

       [OT01606] => stdClass Object 
        (
         [transferfrom] => 102 
         [transferto] => 66 
         [BR_ID] => 66 
         [refno] => 102 - ST00576 

        ) 

      ) 

     [BM1367 PD C 85] => Array 
      (
       [ST00576] => stdClass Object 
        (
         [transferfrom] => 102 
         [transferto] => 66 
         [BR_ID] => 102 
         [refno] => 

        ) 

       [OT01606] => stdClass Object 
        (
         [transferfrom] => 102 
         [transferto] => 66 
         [BR_ID] => 66 
         [refno] => 102 - ST00576 

        ) 

      ) 

     [BM1367 PD D 85] => Array 
      (
       [ST00576] => stdClass Object 
        (
         [transferfrom] => 102 
         [transferto] => 66 
         [BR_ID] => 102 
         [refno] => 

        ) 

       [OT01606] => stdClass Object 
        (
         [transferfrom] => 102 
         [transferto] => 66 
         [BR_ID] => 66 
         [refno] => 102 - ST00576 

        ) 

      ) 

    ) 

}; 

Теперь вы можете получить доступ к элементам, как

$tempArray['BM1367 PD C 70']['ST0076']->transferfrom 

$tempArray['BM1367 PD B 85']['ST0076']->transferfrom 

И для того, чтобы их сравнить

(int)$tempArray['BM1367 PD C 70']['ST0076']->transferfrom == (int)$tempArray['BM1367 PD B 85']['ST0076']->transferfrom 
Смежные вопросы