Возврат набора определенных записей через разнесение переполнения стека

Я пытаюсь сопоставить определенный набор записей, относящихся к пользователю. Например, я пытаюсь захватить все группы, частью которых является пользователь, проверив, является ли его имя пользователя частью group_members поле. Я использую PHP explode функция, но она возвращает только часть после разделителя. Я хочу, чтобы матч был восстановлен.

Вот мой код:

$select = new Select('groups');

$select->columns(array('group_members'))
->where("group_name != '' AND group_name IS NOT NULL");

$query = parent::$sql->getAdapter()->query(
parent::$sql->buildSqlString($select),
Adapter::QUERY_MODE_EXECUTE
);

if (count($query) > 0) {
$user = array();

foreach ($query as $value) {
// determine what groups the user is in
$user[] = $value['group_members'];
}

return $user;

if (in_array(parent::getUser(), explode(", ", $user))) {
echo "yay";
} else {
throw new GroupsExceptions("No groups were found for " . parent::getUser());
}
} else {
throw new GroupsExceptions("Looks like there are no groups created yet! Maybe you would like to create one?");
}

Вот результаты var_dump:

array(2) { [0]=> string(20) "jimmysole, timlinden" [1]=> string(9) "timlinden" }

parent::getUser() это метод, который соответствует имени пользователя, и поле членов группы в базе данных содержит «name, name2».

Как мне найти и сопоставить только то имя пользователя, которое соответствует пользователю сеанса? Есть ли способ извлечь «jimmysole» только из первого значения массива? Кажется, я не могу заставить его работать правильно с помощью Explode, но я думаю, что, вероятно, я делаю это неправильно.

Спасибо

0

Решение

foreach ($query as $value) {
// determine what groups the user is in
$user = $value['group_members'];
}

это зацикливание массива $ query и добавление каждого к строке $ user, так как он перезаписывает в каждом цикле, $ user будет последним значением из $ query

if (in_array(parent::getUser(), explode(", ", $user))) {

$ user здесь строка из 1 без разделителя


так:

foreach ($query as $value) {
// determine what groups the user is in
$user[] = $value['group_members'];
}

это создает массив $ user ..

if (in_array(parent::getUser(), $user)) {

Теперь используйте массив. Нет, чтобы изменить его из строки, когда мы сначала создаем массив.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector