[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка на совпадение в массиве
Markus111
есть 2 массива (первый это результат json_decode, а второй это результат
while($myrow=mysql_fetch_array($result)){
$arr_campaign[] = $myrow;
}
)
Array
(
[
data] => Array
(
[
0] => Array
(

[
CampaignID] => 4550967
[Name] => name0
)

[
1] => Array
(

[
CampaignID] => 5278326
[Name] => name1
)

[
2] => Array
(

[
CampaignID] => 5329393
[Name] => name2
)

)

)


и

Array
(
[
0] => Array
(

[
id_campaign] => 4550967
[name] => name0
)

[
1] => Array
(

[
id_campaign] => 5278326
[name] => name11
)
)


Как проверить их на одинаковые элементы
1. Если CampaignID == id_campaign , то проверить Name == name если нет, тогда записать в новый массив CampaignID и Name, по этому новому массиву потом будет редактироваться второй
2. Если в первом есть CampaignID , а у второго нет таково id_campaign, тогда добавить в новый массив CampaignID и Name, по этому новому массиву потом будет добавляться к второму
3. Если у второго есть id_campaign которого нет у первого, тогда добавить в новый и потом будет удаляться с второго

Есть идеи как реализовать?

_____________
https://t.me/pump_upp
Игорь_Vasinsky
а у вас какие идеи по этому поводу?

рассматривали ли вы циклы?
рассматривали ли вы функции для работы с массивами?
рассматривали ли вы создание 2х упрощённых массивов и сравнивание их штатными средствами php ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Markus111
Я думал о циклах(вызывать постоянно функцию в которой будет цикл с проверкой), но потом задумался о том, что если будет очень много записей, тогда будет долго работать скрипт

_____________
https://t.me/pump_upp
Игорь_Vasinsky
1. не обязательно вытаскивать сразу все данные, можно группами. у mysql есть LIMIT

а эти группы крутить в цикле.

2. одними циклами - хоть как накладно - если упростить массивы до одномерных - то можно использовать array_diff()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Markus111
пробую
$result = array(); 
$result1 = array();
foreach ($arr_campaign as $v) {
for($i = 0;$i < count($arr_curl_campaign['data']);$i++){
if (in_array($v['id_campaign'], $arr_curl_campaign['data'][$i]) && !in_array($v['id_campaign'], $result)) {
array_push($result, array($v['id_campaign'],$arr_curl_campaign['data'][$i]['Name']));
}
}
}

print_r($result);

выводит те которые есть в первого, а как вывести которых нет не пойму

_____________
https://t.me/pump_upp
Игорь_Vasinsky
я говорил о другом.

array_diff() - поможет тебе найти отсутствующие элем-ны в обоих массивах (по очереди) - но для этого нужно сделать одномерные массивы - с данными, которые ты сравниваешь

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.