Есть много массивов типа:
Array (
[0] => 12512650
[1] => https://www.makfsa.ru/
[2] => https://ru.wikipsedia.org/wiki/%D0%9C%D0%B0%D0%BA%D1%84%D0%B0
[3] => http://makfa.nichosst.ru/
[4] => http://ru.makfapasta.com/production/product/pasta/
[5] => http://ru.makfapasta.com/
[6] => https://www.utkaonos.ru/item/42/1096519
[7] => https://www.utkonos.ru/item/42/1096522
[8] => https://www.utkonos.ru/item/1381/3223485
[9] => https://www.uatkonos.ru/item/42/1096527
[10] => https://proactions.ru/actions/food/makfa/
)
Таких массивов может быть от 2х до 20и.
Есть так же массив типа:
Array (
[obj] =>
Array (
[0] =>
Array (
[url] => https://www.utkonos.ru/item/1381/3223485
[ton] => Не определена
[type] => Не определен
)
[1] =>
Array (
[url] => https://proactions.ru/actions/food/makfa/
[ton] => Не определена
[type] => Не определен
)
[2] => Array (
[url] => http://makfa.nichost.ru/
[ton] => Не определена
[type] => Не определен
)
[3] => Array (
[url] => https://ru.wikipedia.org/wikif/%D0%9C%D0%B0%D0%BA%D1%84%D0%B0
[ton] => Не определена
[type] => Не определен
)
[4] => Array (
[url] => http://ru.makfapasta.com/producftion/product/pasta/
[ton] => Не определена
[type] => Не определен )
[5] => Array (
[url] => http://ru.mafkfapasta.com/
[ton] => Не определена
[type] => Не определен
) ....
Необходимо url из второго массива сравнить с с первыми массивами и образовать новые массива типа первых, но уже с добавлением соответствующих ton и type значений. Как?
Ваши массивы:
$arr_1 = [
'12512650',
'https://www.makfsa.ru/',
'https://ru.wikipsedia.org/wiki/%D0%9C%D0%B0%D0%BA%D1%84%D0%B0',
'http://makfa.nichosst.ru/',
'http://ru.makfapasta.com/production/product/pasta/',
'http://ru.makfapasta.com/',
'https://www.utkaonos.ru/item/42/1096519',
'https://www.utkonos.ru/item/42/1096522',
'https://www.utkonos.ru/item/1381/3223485',
'https://www.uatkonos.ru/item/42/1096527',
'https://proactions.ru/actions/food/makfa/'
];
$arr_2 = [
'obj' => [
[
'url' => 'https://www.utkonos.ru/item/1381/3223485',
'ton' => 'Не определена',
'type' => 'Не определен'
],
[
'url' => 'https://proactions.ru/actions/food/makfa/',
'ton' => 'Не определена',
'type' => 'Не определен'
],
[
'url' => 'http://makfa.nichost.ru/',
'ton' => 'Не определена',
'type' => 'Не определен'
],
[
'url' => 'https://ru.wikipedia.org/wikif/%D0%9C%D0%B0%D0%BA%D1%84%D0%B0',
'ton' => 'Не определена',
'type' => 'Не определен'
],
[
'url' => 'http://ru.makfapasta.com/producftion/product/pasta/',
'ton' => 'Не определена',
'type' => 'Не определен'
],
[
'url' => 'http://ru.mafkfapasta.com/',
'ton' => 'Не определена',
'type' => 'Не определен'
]
]
];
Тогда решение можно записать так:
$new = [];
foreach($arr_2 as $key => $arr) {
foreach ($arr as $k => $a) {
$url = array_intersect(array_column($arr_2[$key], 'url'), $arr_1);
! in_array($a['url'], $url) ?: $new[] = $a;
}
}
var_dump($new);
В результате работы скрипта будет получен массив:
array (size=2)
0 =>
array (size=3)
'url' => string 'https://www.utkonos.ru/item/1381/3223485' (length=40)
'ton' => string 'Не определена' (length=25)
'type' => string 'Не определен' (length=23)
1 =>
array (size=3)
'url' => string 'https://proactions.ru/actions/food/makfa/' (length=41)
'ton' => string 'Не определена' (length=25)
'type' => string 'Не определен' (length=23)
Примерно так:
<?php
$first_array = array( '......' );
$last_array = array( '......' );
$result = array();
for ( $i = 0; $i < count( $first_array ); $i++ ) {
$key = array_search( $first_array[ $i ], $last_array, true );
if ( $key ) {
$result[ $i ][ 'url' ] = $last_array[ $key ][ 'url' ];
$result[ $i ][ 'url' ] = $last_array[ $key ][ 'ton' ];
$result[ $i ][ 'url' ] = $last_array[ $key ][ 'type' ];
}
}
print_r( $result );
?>
p.s Не забудьте подменить ваши массивы на мои ($first_array,$last_array)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости