remenikomer
8.04.2014 - 17:28
Есть данные:
$a = '2|7|5' ;
$b = 1,5,3,62 ;
Нужно определить, встречается ли в переменной b что-то из трех значений из переменной a.
Способ разделения данных не имеет значения. Можно переделать их в массив.
А цель такая:
есть в БД запись, у нее есть поле несколько значений id ($b). Есть в конфиге настройки ($a), что создает условие, если у записи есть какое-то значение из указанных id, то эту запись нужно вывести.
Может быть есть другие способы реализации (кроме foreach в foreach)?
Если правильно понял, то
http://ideone.com/un0EnDВ примере только первая берется без цикла. Но ведь может быть несколько совпадений, тогда без цикла ни как.
remenikomer
8.04.2014 - 18:47
Цитата (BaNru @ 8.04.2014 - 18:25) |
Если правильно понял, то http://ideone.com/un0EnD В примере только первая берется без цикла. Но ведь может быть несколько совпадений, тогда без цикла ни как. |
а мне хотя бы одно попадание и нужно. Спасибо.
"Хотя бы одно" не корректор для данного примера. Ибо там берется всегда первое совпадение.
Для "хотя бы одно" тогда вот так лучше
http://ideone.com/wAKl8uДобавлено позже:Кстати, можно и проще с
array_rand()Но это будет домашним заданием
$a = '2|7|5' ;
$b = [1,5,3,62];
$a = explode('|', $a);
$flag = false;
foreach ($a as $k => $v) {
if (in_array($v, $b)) {
$flag = true;
}
}
remenikomer
9.04.2014 - 13:41
я уже понял.
Тогда уж вопрос такой: в чем разница всех этих примеров? Самый короткий способ:
if( array_intersect( $arr1 , $arr2 ) ) {}
чем он плох?
Мне и нужно то любое, хоть 1-е, хоть 1000-е совпадение. Главное, чтобы получить true, что есть хотя бы одно совпадение.
Цитата |
Главное, чтобы получить true |
Вот так всегда. Многие подробности выясняются после.
В начале у тебя задача звучала так
Цитата |
если у записи есть какое-то значение из указанных id, то эту запись нужно вывести. |
Я понял, что надо вывести совпавшую id запись, а не TRUE. Это большая разница.
У каждой задачи может быть множество решений.
Какие-то короче написаны, какие-то быстрее исполняются.
Многое зависит от ТЗ, в котором запятая может изменить многое.
Пользуйся тем, что тебе более удобно и понятно.
Тебе работать с этим кодом.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.