За последние 24 часа нас посетили 63140 программистов и 1740 роботов. Сейчас ищут 903 программиста ...

Слияние объектов с заменой

Тема в разделе "PHP для новичков", создана пользователем denism300, 29 ноя 2016.

  1. denism300

    denism300 Новичок

    С нами с:
    25 фев 2016
    Сообщения:
    39
    Симпатии:
    4
    Есть два одинаковых объекта.
    Данный второго приоритетнее. Не могу разобраться, как слить их в один объект по такому принципу: если элемент второго объекта не 0 и не null, то он замещает собой соответствующий элемент первого объекта.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Речь идет именно об объектах или о массивах? Это разные вещи.
     
  3. denism300

    denism300 Новичок

    С нами с:
    25 фев 2016
    Сообщения:
    39
    Симпатии:
    4
    именно об объектах. с массивами проще, да и примеров масса.
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Так преобразуйте объекты в массивы, выполните необходимые операции и, если нужно, сделайте обратное преобразование результата в объект.
     
    denism300 нравится это.
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А еще лучше, опишите, что вообще происходит, и как так случилось, что вам необходимо провести слияние объектов?
    У вас объекты выступают в роли массивов чтоль? Если они рассчитаны на "слияние", то сделайте у них соответствующие методы. Чтоб один объект принимал другой, и "сливался с ним".

    Но, честно говоря, больше похоже на неправильное использование объектов.
     
    askanim нравится это.
  6. denism300

    denism300 Новичок

    С нами с:
    25 фев 2016
    Сообщения:
    39
    Симпатии:
    4
    с объектами разобрался. после преобразования в массив все решилось просто. возникла другая проблема: может, конечно, я туплю, но все же. Есть массива:
    Array
    (
    [product_length] => 40.0000
    [product_width] => 40.0000
    [product_height] => 3.0000
    [product_lwh_uom] => CM
    [product_weight] => 200.0000
    [product_weight_uom] => G
    )
    Array
    (
    [product_length] => 45.0000
    [product_width] => 45.0000
    [product_height] => 10.0000
    [product_lwh_uom] => CM
    [product_weight] => 300.0000
    [product_weight_uom] => G
    )
    Array
    (
    [product_length] => 35.0000
    [product_width] => 35.0000
    [product_height] => 5.0000
    [product_lwh_uom] => CM
    [product_weight] => 200.0000
    [product_weight_uom] => G
    )
    Array
    (
    [product_length] => 30.0000
    [product_width] => 30.0000
    [product_height] => 30.0000
    [product_lwh_uom] => CM
    [product_weight] => 150.0000
    [product_weight_uom] => G
    )
    Array
    (
    [product_length] => 20.0000
    [product_width] => 20.0000
    [product_height] => 20.0000
    [product_lwh_uom] => CM
    [product_weight] => 100.0000
    [product_weight_uom] => G
    )
    я пытаюсь обработать данные. но получается какая-то фигня. к примеру, для теста написал простенький код:
    PHP:
    1. foreach ($dimensions as $dimension => $dValue) {
    2.     print_r($dimension['product_length'] . "\n");
    3. }
    по идее, я должен получить значения [product_length], однако, на практике я получаю столбец из букв p, из расчета по 6 штук на каждый Array
     
  7. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Если бы у вас был включен вывод ошибок, что рекомендуется на время отладки, то кроме букв "p", вы бы получили еще и сообщение: "E_WARNING : type 2 -- Illegal string offset 'product_length' ... ".
    $dimension будет содержать ключ текущего элемента массива, т.е. обычные строки: 'product_length', 'product_width', 'product_height' и т.д.
     
    denism300 нравится это.