За последние 24 часа нас посетили 55572 программиста и 1719 роботов. Сейчас ищут 836 программистов ...

Как сравнить массивы (старый с новым)

Тема в разделе "PHP для новичков", создана пользователем paqwerty, 4 фев 2011.

  1. paqwerty

    paqwerty Активный пользователь

    С нами с:
    2 мар 2007
    Сообщения:
    121
    Симпатии:
    0
    Всем привет!

    Помогите пожалуйста, уже 3 сутки бъюсь:

    У меня есть ассоциативный массив (ключ - назв. товара, зн. - цена), который содержит и нужные позиции и не нужные. Есть второй массив, в который я передаю значения первого массива. Получается, при каждой генерации первого массива, значения второго тоже обновляются. А я хочу сравнивать значения массива 2 до его обновления, со значениями массива 2 после его обноления для того, чтобы увидеть что именно поменялось. Я использую ф. , но результат получается не правильный.

    вот коды:

    PHP:
    1.  
    2. <?php
    3. $arr1 = array ("товар1" => "10", "товар2" => "20", "товар3" => "15");
    4. $arr2 = array ("артикул1" => "товар1", "артикул2" => "товар2", "артикул3" => "товар3");
    5. $arr3 = $arr2;
    6. foreach ($фкк1 as $k1 => $v1) {
    7.     foreach ($arr2 as $k2 => $v2) {
    8.         if ($v2 == $k1) {
    9.             $arr2[$k2] = $v1;
    10.         }
    11.     }
    12. }
    13. $q = array_diff_assoc ($arr2, $arr3);
    14. foreach ($q as $qq => $ww) {
    15.     echo "позиция ".$qq." изменилась на ".$ww." руб. <br>";
    16. }
    17. ?>
    18.  
    Результат таков:

    • позиция артикул1 изменилась на 10 руб.
      позиция артикул2 изменилась на 20 руб.
      позиция артикул3 изменилась на 30 руб.
      позиция артикул4 изменилась на 15 руб.

    Так и должно быть при первом обращении к скрипту, т.к. значения ВСЕХ позиций были изменены. Но если поменять, напрмер 10 на 90, то результат будет подобным только с цифрой 90. И Я ПОНИМАЮ ПОЧЕМУ ТАК, но не понимаю ка сделать правильно данную задачу...

    ПОМОГИТЕ КТО МОЖЕТ.