Помогите понять логику!(PHP)

Discussion in 'PHP' started by TADIAMOND, 22 May 2014.

  1. TADIAMOND

    TADIAMOND Member

    Joined:
    19 Feb 2011
    Messages:
    136
    Likes Received:
    34
    Reputations:
    5
    Здравствуйте уважаемые форумчане, очень нуждаюсь в вашей помощи! Я пишу аналог ф-и array_diff_uassoc(пишу, чтобы лучше понимать и и уметь кодить), в общем написал и при глубоком тестировании выяснил, что моя ф-я дает сбой!


    При ситуации

    $q = function (){};
    $array1 = array(1,2,3,4);
    $array2 = array(1,2,3);

    print_r(array_diff_uassoc($array1, $array2, $q));
    print_r(my_array_diff_uassoc($array1, $array2, $q));


    Получаются такие выводы

    Array
    (
    [0] => 1
    [1] => 2
    [3] => 4
    )

    и соответственно моя ф-я выдает

    Array
    (
    [3] => 4
    )

    Еще интересней получается когда когда пихаешь смешанные массивы,где и объекты и некоторые параметры массивов тоже массивы содержат, а так же нулл и параметры булева типа!

    Очень прошу, помогите разобраться, заранее всем спасибо за помощь!
     
  2. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,857
    Likes Received:
    1,961
    Reputations:
    594
    Нахера писать аналоги встроенным функциям, это же не ASM ZX80? (циклический сдвиг походу программистам биоса был незнаком...)
    P.S. my_array_diff_uassoc - код то приведи, а то что сравнивать чистый воздух с высером?
     
    #2 -=lebed=-, 23 May 2014
    Last edited: 23 May 2014
  3. TADIAMOND

    TADIAMOND Member

    Joined:
    19 Feb 2011
    Messages:
    136
    Likes Received:
    34
    Reputations:
    5
    Мне кажется это нормальный способ научиться кодить!

    Насчет кода специально не вылаживал, тк хочу сам написать, непонятна логика в конкретном случае,когда калбэк ф-я является closure,сравнение у меня идет так

    if ($arrays[count($arrays) - 1]($keyArray[$j],$key) === 0 and (string)$arrays[$i][$key] === (string)$value) ---- скорее всего что-то не правильно, но исправить возможно только в том случае,если я пойму логику!
     
Loading...