Добрый день.
1. Сайт
2. Раздел
Большое спасибо. Решения вполне подходят. Вы супер!
$h = array('a', 'b', 'f', 'r', 'b', 'v', 'r', 'b', 't', 'a'); $m = array('a', 'b', 'f', 'r', 'v'); function check($array, $search, $count=0) { foreach ($array as $k=>$v) { $n = array_search($v, $search, true); if ($n!==false) { unset($search[$n]); } else { print $count; return; } } $count++; check($array, $search, $count); } check($m, $h);
Работает только при строгом порядке соответствия второго массива в первом. Если в первом или во втором массиве поменять местами какие нибудь элементы, код перестанет работать.
function check($m, $h) { $intersections = array_unique(array_intersect($h, $m)); return count($intersections);}
Этот код будет всегда возвращать количество элементов в массиве $m.
C руби я к сожалению совершенно не знаком. По-этому не понял вот эту строчку совсем:
intersections = a.each_slice(b.size).to_a.select { |arr| arr == b }
Да. :) На самом деле я это понял уже из первого ответа. :) Спасибо вам большое!
Немного неверно описал похоже вторую таблицу.
Один ко многим.
1 таблица
|bid_id|title|status|
----------------------
|1|первый|complete|
|2|второй|in_progress|
2 таблица
|act_id|bid_id|action|
------------------------
|43|1|opened|
|44|2|funded|
|45|1|closed|
Как видно из таблиц, для бида 1, не было статуса funded в таблице 2. Значит бид №1 должен быть в вытащенных данных, а второй - нет, так как для него есть в таблице действие funded.
Вот теперь вытаскивает. Спасибо огромное :)
Да это все равно ничего не меняет. Даже если я пишу
ON (a.id=b.iid) WHERE b.group_id='".intval($id)."' OR b.group_id=0
Все равно не вытаскиваются.
Так по сути он NOT NULL если его не заполнили.
А еслион вытаскивается по LEFT JOIN, то его результат разве не NULL? Это не запись из таблицы. Это результат склейки же.