За последние 24 часа нас посетили 21332 программиста и 1024 робота. Сейчас ищут 707 программистов ...

Перебор массива по пересечениям (php)

Тема в разделе "PHP для новичков", создана пользователем hedvik.pirs, 28 дек 2021.

Метки:
  1. hedvik.pirs

    hedvik.pirs Новичок

    С нами с:
    28 дек 2021
    Сообщения:
    2
    Симпатии:
    0
    Получаю массив хочу найти в нем пересечения и соединить их.
    PHP:
    1. $arFound = [
    2. [
    3.     733 => 733
    4. ],
    5. [
    6.     735 => 735,
    7.     736 => 736
    8. ],
    9. [
    10.     735 => 735,
    11.     736 => 736,
    12.     737 => 737
    13. ],
    14. [
    15.     736 => 736,
    16.     737 => 737
    17. ]
    18. ];
    В идеале хочу получить следующий массив:
    PHP:
    1. $result = [
    2. [
    3.     733 => 733
    4. ],
    5. [
    6.     735 => 735,
    7.     736 => 736,
    8.     737 => 737
    9. ]
    10. ];
    Но пока не получается сформировать такой массив. Прошу вас помочь мне, перебрать массив $arFound, что бы получился $result
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    Где ваши наброски ? иначе смотрится на "студенческое задание + сделай за меня"
     
  3. hedvik.pirs

    hedvik.pirs Новичок

    С нами с:
    28 дек 2021
    Сообщения:
    2
    Симпатии:
    0
    По существую вопроса есть что ответить? Вы так же можете и к моему коду придираться. А помощь то будет от вас конкретно если скину вам код?

    Вам код скинуть моих попыток как получить такой массив? (так вот этот код и не получается реализовать)
    или как я получил массив $arFound?
     
  4. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Посмотрите если это подойдет:
    PHP:
    1. foreach ($arFound as $k=>$ar_k) {
    2.     foreach ($arFound as $j=>$ar_j) {
    3.         $count_arr_k = count($ar_k);
    4.         if ($k != $j  &&
    5.             $count_arr_k == count(array_intersect_key($ar_k, $ar_j)) &&
    6.             $count_arr_k == count(array_intersect($ar_k, $ar_j))
    7.         ) {
    8.             unset($arFound[$k]);
    9.         }
    10.     }
    11. }
    https://phpize.online/sql/mysql57/undefined/php/php5/8032014e019df334da91c36289d821fc/
     
    hedvik.pirs нравится это.
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    А он существует ? o_O

    Цель форумов - научить / помочь / просвятить, но не сделать за тебя Абсолютно всю работу. Я не слепой и вижу где человек старается / действительно нужна помощь, а где сделай за меня то что препод задал для Зачетки.
     
    hedvik.pirs нравится это.
  6. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Не совсем понятны критерии отбора годного подмассива.
    То есть оставленного в "следующем массиве"