Задать вопрос
  • Как найти все дубликаты в многомерном массиве?

    @dimoff66
    Кратко о себе: Я есть
    Если предположить что пользоваться методами работы с массивами вы умеете, то алгоритмически решение будет выглядить так:

    1) Сделайте массив плоским
    [
      ['alex', '111111'],
      ['alex', 2222222],
      ...
    ]


    2) Сгруппируйте по номеру телефона, чтобы получилось
    [
      '111111' => ['alex', 'john'],
      '222222' => ['alex']
      ...
    ]


    3) Отфильтруйте элементы где значение имеет больше одного элемента.

    Задача сделана

    UPDATE:
    Простой код

    $data = [
      'alex' => [
        "1111111",
        "2222222",
        "1726354"
      ],
      'john' => [
        "1111111",
        "3333333",
        "7162534"
      ],
      'michel' => [
        "1111111",
        "453453453",
        "3333333"
      ]
    ] ;
    
    $res = [];
    foreach ($data as $name => $phones) {
        foreach($phones as $phone) {
            if (!array_key_exists($phone, $res)) {
                $res[$phone] = [];
            }
            $res[$phone][] = $name;
        }    
    }
    
    print_r($res)


    Array
    (
        [1111111] => Array
            (
                [0] => alex
                [1] => john
                [2] => michel
            )
    
        [2222222] => Array
            (
                [0] => alex
            )
    
        [1726354] => Array
            (
                [0] => alex
            )
    
        [3333333] => Array
            (
                [0] => john
                [1] => michel
            )
    
        [7162534] => Array
            (
                [0] => john
            )
    
        [453453453] => Array
            (
                [0] => michel
            )
    
    )
    Ответ написан
    7 комментариев
  • Почему функция выдает false?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Kristina8787, ну значит на этих этапах ошибок нет. Вижу опечатку в самом конце кода.

    /*Сохранение результата в промежуточном массиве*/
        $orderinfo["goods"] = $items;
        /*добавление промежуточного массива в возвращаемый массив*/
        $allorders[]=$ordersinfo;


    $orderinfo
    $ordersinfo
    Ответ написан
    2 комментария
  • Где я ошиблась в коде?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Ответ написали выше нет точки с запятой но есть еще момент;

    Есть константа __DIR__ которая указывает сразу на директорию.
    Ответ написан
    6 комментариев