Необходимо найти, совпадают ли два массива, а затем, где они соответствуют данным pull из строки mysql, в которой они совпадают. Должен ли я использовать
$sql = "SELECT * FROM around"; $resultsd = $conn->query($sql); foreach($resultsd as $rowd) {} if (array_intersect($ar1, $ar2)) { $sword[] = $rowd['TIM']; }
или я должен использовать
if (in_array($ar1, $ar2)) { $sword[] = $rowd['TIM']; }
Получение таких массивов, как:
$ar1[] = $rowd['nim']; $ar2[] = $rowd['nim'];
Тогда как же тянуть за конкретную строку, в которой они совпадают?
Я вижу, что они соответствуют, и распечатывают массив в порядке:
Array ( [0] => dcbabcbded ) Array ( [0] => fafeafaebee [1] => afabfdefcbb [2] => dcbabcbded
Но когда я пытаюсь получить эхо-данные mysql, где они совпадают, я терпит неудачу:
Array ( )
я бы пошел с sql IN
clause.
У вас есть массив имен клиентов: $a = array('john','rob','paul');
массив $nms = join(',',$a);
Сделать sql: 'SELECT * FROM tabl WHERE name IN ('.$nms.')';
сначала пересечь массив (или то, что вам нужно …), чтобы иметь массив необходимых имен.
используйте $new = array_intersect(Array ( [0] => dcbabcbded ), Array ( [0] => fafeafaebee [1] => afabfdefcbb [2] => dcbabcbded))
: тогда сделайте действительный sql, как указано в моем ответе выше.
Если вы уверены, что у вас всегда есть массив, пересекающийся с одним или никаким значением, тогда сделайте sql только с первым элементом массива: $ar[0]
используя WHERE
sql WHERE
.