Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 18.06.2017
Сообщений: 112
1

Foreach Два двумерных массива объединить в один двумерный

16.05.2019, 20:11. Показов 1386. Ответов 1
Метки нет (Все метки)

У меня есть 1 массив из всеми данными
Код
array(2) {
  [0]=>
  array(7) {
    ["id"]=>
    string(1) "3"
    ["id_C"]=>
    string(1) "1"
    ["name_product"]=>
    string(13) "Testtetststte"
    ["text"]=>
    string(14) "stattasbchanwj"
    ["price"]=>
    string(3) "123"
    ["gram"]=>
    string(5) "14214"
    ["folder"]=>
    string(34) "public/images/image_categories/1/3"
  }
  [1]=>
  array(7) {
    ["id"]=>
    string(1) "4"
    ["id_C"]=>
    string(1) "1"
    ["name_product"]=>
    string(10) "Testsettab"
    ["text"]=>
    string(16) "asfawgagwafafawf"
    ["price"]=>
    string(4) "1234"
    ["gram"]=>
    string(5) "41241"
    ["folder"]=>
    string(34) "public/images/image_categories/1/4"
  }
}
и второй из фото
Код
array(5) {
  [0]=>
  array(3) {
    ["id"]=>
    string(1) "3"
    ["id_Product"]=>
    string(1) "3"
    ["image"]=>
    string(12) "about-bg.jpg"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(1) "4"
    ["id_Product"]=>
    string(1) "3"
    ["image"]=>
    string(14) "contact-bg.jpg"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(1) "5"
    ["id_Product"]=>
    string(1) "3"
    ["image"]=>
    string(11) "home-bg.jpg"
  }
  [3]=>
  array(3) {
    ["id"]=>
    string(1) "6"
    ["id_Product"]=>
    string(1) "4"
    ["image"]=>
    string(12) "about-bg.jpg"
  }
  [4]=>
  array(3) {
    ["id"]=>
    string(1) "7"
    ["id_Product"]=>
    string(1) "4"
    ["image"]=>
    string(14) "contact-bg.jpg"
  }
}
Мне нужено по ид добавлять две первые фото. Я нашел код и подставил себе, только он берет одну последнию фото
PHP
1
2
3
4
5
6
7
foreach($result as $key => $value){
            foreach($img as $value2){
                if($value['id'] === $value2['id_Product']){
                    $result[$key]['image'] = $value2['image'];
                }               
            }
        }
Результат роботы кода выше
Код
array(2) {
  [0]=>
  array(8) {
    ["id"]=>
    string(1) "3"
    ["id_C"]=>
    string(1) "1"
    ["name_product"]=>
    string(13) "Testtetststte"
    ["text"]=>
    string(14) "stattasbchanwj"
    ["price"]=>
    string(3) "123"
    ["gram"]=>
    string(5) "14214"
    ["folder"]=>
    string(34) "public/images/image_categories/1/3"
    ["image"]=>
    string(11) "home-bg.jpg"
  }
  [1]=>
  array(8) {
    ["id"]=>
    string(1) "4"
    ["id_C"]=>
    string(1) "1"
    ["name_product"]=>
    string(10) "Testsettab"
    ["text"]=>
    string(16) "asfawgagwafafawf"
    ["price"]=>
    string(4) "1234"
    ["gram"]=>
    string(5) "41241"
    ["folder"]=>
    string(34) "public/images/image_categories/1/4"
    ["image"]=>
    string(14) "contact-bg.jpg"
  }
}
А мне нужно
Код
array(2) {
  [0]=>
  array(8) {
    ["id"]=>
    string(1) "3"
    ["id_C"]=>
    string(1) "1"
    ["name_product"]=>
    string(13) "Testtetststte"
    ["text"]=>
    string(14) "stattasbchanwj"
    ["price"]=>
    string(3) "123"
    ["gram"]=>
    string(5) "14214"
    ["folder"]=>
    string(34) "public/images/image_categories/1/3"
    ["image"]=>
    string(12) "about-bg.jpg"
    ["image2"]=>
    string(14) "contact-bg.jpg"
  }
  [1]=>
  array(8) {
    ["id"]=>
    string(1) "4"
    ["id_C"]=>
    string(1) "1"
    ["name_product"]=>
    string(10) "Testsettab"
    ["text"]=>
    string(16) "asfawgagwafafawf"
    ["price"]=>
    string(4) "1234"
    ["gram"]=>
    string(5) "41241"
    ["folder"]=>
    string(34) "public/images/image_categories/1/4"
    ["image"]=>
    string(12) "about-bg.jpg"
    ["image2"]=>
    string(14) "contact-bg.jpg"
  }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2019, 20:11
Ответы с готовыми решениями:

Объединить два массива в один
Есть два массива: ... $users1 = array("name" => "Иван", "age" => "20", "registered"...

Объединить два массива в один с условием
Приветствую! Подскажите как лучше реализовать объединение двух массивов в один, таким образом,...

Два двумерных массива объединить в один двумерный
Даны два двумерных массива LL; PER; Нужно их объединить в один Mas чтобы порядок чисел...

Объединить два двумерных массива размерностью N*N в один, так, чтобы все строки первого массива стали чётными
Объединить два двумерных массива размерностью N*N в один, так, чтобы все строки первого массива...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на PHP‌
1
1029 / 708 / 342
Регистрация: 09.07.2018
Сообщений: 1,692
17.05.2019, 08:43 2
Moroni, можно добавить условие и переменную-счётчик:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$i = 0;
 
foreach ($result as $key => $value) {
    foreach ($img as $value2) {
        if ($value['id'] === $value2['id_Product']) {
            if (! isset($result[$key]['image'])) {
                $result[$key]['image'] = $value2['image'];
            } else {
                $result[$key]['image' . ++$i] = $value2['image'];
            }
        }               
    }
}

Но обычно в таких случаях используют группировку по ключу:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
foreach ($result as $key => $value) {
    foreach ($img as $value2) {
        if ($value['id'] === $value2['id_Product']) {
            $result[$key]['image'][] = $value2['image'];
        }               
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2019, 08:43

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как объединить два одномерных массива в один двумерный?
Приветствую! В JavaScript разбираюсь не особо сильно... в процессе освоения... Столкнулся с...

Как объединить два одномерных массива в один двумерный массив?
можно ли как нибудь объединить два массива в один ДВУМЕРНЫЙ МАССИВ? Заранее спсибо void...

Объединить два одномерных массива в один двумерный массив, состоящий из двух столбцов
Объединить два одномерных массива в один двумерный массив, состоящий из двух столбцов. Помогите...

Как объединить два двумерных массива?
есть массивы А и B как их зделать в C, проста смотрел про одномерные массивы там все както проста...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.