Правильное объединение двух разных наборов данных ⇐ Php
-
Anonymous
Правильное объединение двух разных наборов данных
Мне действительно не помешала бы помощь в этом. Кажется, я не могу понять это правильно, какой бы подход я ни выбрал. Позвольте мне настроить это, чтобы вы могли сначала понять задачу.
Сначала у нас есть набор данных под названием $play_array, который содержит следующую информацию.
Массив( [506] => Массив ( [минус] => Массив ( [406] => Массив ( [все] => Массив ( [0] => 406 [1] => 460 [2] => 046 [3] => 064 [4] => 640 [5] => 604 [6] => 951 [7] => 915 [8] => 591 [9] => 519 [10] => 195 [11] => 159 [12] => 906 [13] => 960 [14] => 096 [15] => 069 [16] => 690 [17] => 609 [18] => 456 [19] => 465 [20] => 546 [21] => 564 [22] => 645 [23] => 654 [24] => 401 [25] => 410 [26] => 041 [27] => 014 [28] => 140 [29] => 104 [30] => 451 [31] => 415 [32] => 541 [33] => 514 [34] => 145 [35] => 154 [36] => 956 [37] => 965 [38] => 596 [39] => 569 [40] => 695 [41] => 659 [42] => 901 [43] => 910 [44] => 091 [45] => 019 [46] => 190 [47] => 109 ) ) [505] => Массив ( [все] => Массив ( [0] => 505 [1] => 550 [2] => 055 [3] => 050 [4] => 005 [5] => 500 [6] => 555 [7] => 000 ) ) ) ) ); Чтобы понять, как я настраиваю массив, я создал следующий код
foreach($play_array as $k=>$v){ foreach($v['minus'] as $key=>$val){ $all = file_get_contents("get-nums.php?math=". $val); $t_all = взорваться(", ", $all); foreach($t_all как $tall){ unset($play_array[$k]['минус'][$key]); $play_array[$k]['minus'][$val]['all'][] = $tall; } } } До этого момента все было хорошо. Это тот момент, когда у меня возникают проблемы, и я не могу понять это правильно. Я просматриваю $play_array, чтобы получить клавиши минуса, которые хочу отобразить. Затем я хочу еще раз просмотреть массив $play_array и найти значения, которые находятся внутри него и соответствуют ключу минус, или его значениям в области [минус][XX][all].
Это настоящий код для этого. И хотя это близко, это не совсем так.
foreach($play_array as $k=>$v){ $min_array = $play_array[$k]['минус']; foreach($min_array as $mk => $mv){ $all = $min_array[$mk]['all']; $check = array_intersect_key(array_flip($all), $play_array); если(!пустой($проверка)){ эхо $мк. ": "; foreach($проверьте как $ck=>$cv){ если($ck != $mk){ эхо $ск. ', '; } } } если(!пустой($проверка)){ эхо "
"; } } } Ниже приведен мой текущий результат, а затем желаемый результат.
Текущий: 007:070, 750:070, 622: 717, 771, 762, 721: 762, 771, 717, 170: 107, 751, 071: 107, 751, Желанный: 007: 070, 750 622: 717, 771, 762, 712 170:107, 751, 071 Мне кажется, что я что-то упускаю в использовании unset() для удаления ключей, чтобы они не повторялись, но я не совсем уверен, где именно. Любая помощь очень ценится. Я часами пытался, используя разные подходы, чтобы сделать это правильно, и это самый близкий вариант, который я продолжаю приближать. Спасибо!
Мне действительно не помешала бы помощь в этом. Кажется, я не могу понять это правильно, какой бы подход я ни выбрал. Позвольте мне настроить это, чтобы вы могли сначала понять задачу.
Сначала у нас есть набор данных под названием $play_array, который содержит следующую информацию.
Массив( [506] => Массив ( [минус] => Массив ( [406] => Массив ( [все] => Массив ( [0] => 406 [1] => 460 [2] => 046 [3] => 064 [4] => 640 [5] => 604 [6] => 951 [7] => 915 [8] => 591 [9] => 519 [10] => 195 [11] => 159 [12] => 906 [13] => 960 [14] => 096 [15] => 069 [16] => 690 [17] => 609 [18] => 456 [19] => 465 [20] => 546 [21] => 564 [22] => 645 [23] => 654 [24] => 401 [25] => 410 [26] => 041 [27] => 014 [28] => 140 [29] => 104 [30] => 451 [31] => 415 [32] => 541 [33] => 514 [34] => 145 [35] => 154 [36] => 956 [37] => 965 [38] => 596 [39] => 569 [40] => 695 [41] => 659 [42] => 901 [43] => 910 [44] => 091 [45] => 019 [46] => 190 [47] => 109 ) ) [505] => Массив ( [все] => Массив ( [0] => 505 [1] => 550 [2] => 055 [3] => 050 [4] => 005 [5] => 500 [6] => 555 [7] => 000 ) ) ) ) ); Чтобы понять, как я настраиваю массив, я создал следующий код
foreach($play_array as $k=>$v){ foreach($v['minus'] as $key=>$val){ $all = file_get_contents("get-nums.php?math=". $val); $t_all = взорваться(", ", $all); foreach($t_all как $tall){ unset($play_array[$k]['минус'][$key]); $play_array[$k]['minus'][$val]['all'][] = $tall; } } } До этого момента все было хорошо. Это тот момент, когда у меня возникают проблемы, и я не могу понять это правильно. Я просматриваю $play_array, чтобы получить клавиши минуса, которые хочу отобразить. Затем я хочу еще раз просмотреть массив $play_array и найти значения, которые находятся внутри него и соответствуют ключу минус, или его значениям в области [минус][XX][all].
Это настоящий код для этого. И хотя это близко, это не совсем так.
foreach($play_array as $k=>$v){ $min_array = $play_array[$k]['минус']; foreach($min_array as $mk => $mv){ $all = $min_array[$mk]['all']; $check = array_intersect_key(array_flip($all), $play_array); если(!пустой($проверка)){ эхо $мк. ": "; foreach($проверьте как $ck=>$cv){ если($ck != $mk){ эхо $ск. ', '; } } } если(!пустой($проверка)){ эхо "
"; } } } Ниже приведен мой текущий результат, а затем желаемый результат.
Текущий: 007:070, 750:070, 622: 717, 771, 762, 721: 762, 771, 717, 170: 107, 751, 071: 107, 751, Желанный: 007: 070, 750 622: 717, 771, 762, 712 170:107, 751, 071 Мне кажется, что я что-то упускаю в использовании unset() для удаления ключей, чтобы они не повторялись, но я не совсем уверен, где именно. Любая помощь очень ценится. Я часами пытался, используя разные подходы, чтобы сделать это правильно, и это самый близкий вариант, который я продолжаю приближать. Спасибо!
Мобильная версия