Подскажите пожалуйста есть вот 2 массива. PHP: $a = array ( 0 => '', 1 => '629', 2 => '2465', 3 => '2693', 4 => '2694', 5 => '2695', 6 => '2700', 7 => '2701', 8 => '2702', 9 => '2991', 10 => '2992', 11 => '2993', 12 => '2994', 13 => '2995', 14 => '2996', 15 => '2997', 16 => '2998', 17 => '2999', 18 => '3000', 19 => '3001', 20 => '3002', 21 => '3003', 22 => '4246', 23 => '4247', 24 => '4248', 25 => '5203', 26 => '4249', 27 => '4250', 28 => '4251', 29 => '2954', 30 => '2698', 31 => '2699', 32 => '3014', 33 => '2696', 34 => '5205', 35 => '5204', 36 => '4482', 37 => '2990', 38 => '2697', 39 => '2770', 40 => '2524', 41 => '2472', 42 => '2529', 43 => '2691', 44 => '2467', 45 => '2705', 46 => '2522', 47 => '2525', 48 => '2485', 49 => '2449', 50 => '2471', 51 => '2706', 52 => '2486', 53 => '2526', 54 => '3135', 55 => '2690', 56 => '2523', 57 => '2703', 58 => '2689', 59 => '2704', 60 => '3015', 61 => '2531', 62 => '4724', 63 => '2466', 64 => '2464', 65 => '2468', 66 => '2527', 67 => '2692', 68 => '2450', 69 => '2469', 70 => '2530', 71 => '2528', 72 => '2448', 73 => '2470', 74 => '2688', 75 => '2473', ) $b = array ( 2448 => '2448', 2990 => '2990', 2690 => '2690', 2688 => '2688', 2704 => '2704', 2705 => '2705', 2695 => '2695', 2700 => '2700', 2701 => '2701', 2702 => '2702', 2991 => '2991', ) Надо что бы в массиве на выходе, ячейки где есть совпадение в массивах была единичка, а там где нету - нолик. Это я так понимаю через Array_map? ПОдскажите пожалуйста как? Например в массиве $a 72 => '2448', заменялось на 72 => '1', Или это через array_udiff ? Хелп
Спасибо, а оно не отмально по нагрузке по идее... если у меня будет 10000 строк прокручивать, внтури которых нужна эта же проверка по 300 столбцам, то серверу просто печально будет... array_uintersect вот еще такое решение смотрю, оно по лучше по нагрузке? --- Добавлено --- PHP: function one_if_correct($v1,$v2) { if ($v1===$v2){ return "1"; } else { return ""; }; }; $array_for_product_types_temp = array_uintersect($a, $b, "one_if_correct"); Затык только с заменой получается, почему-то у меня не возрващает пустую или единичку в значения к итоговому массиву
особой разницы ИМХО нет.. или цикл который Вы не видите это делает.. или цикл который Вы видите)) решение довольно таки интересное у alexblack
если массив не нравится попробуйте так)) PHP: $r = array_intersect($a, $b); $res = array_map(function($i) use ($r) { return (in_array($i, $r)) ? 1 : 0; }, $a); var_dump($res);
через isset() за один проход можно сделать это. --- Добавлено --- под "один" я имею в виду вообще один, а не по одному на каждый член массива.