PHP in_array не находит значение, которое там - PullRequest
1 голос
/ 07 августа 2011

У меня есть массив с именем $ friend_array. Когда я print_r ($ friend_array), это выглядит так:

Array ( [0] => 3,2,5 ) 

У меня также есть переменная $ uid, которая извлекается из URL.

На тестируемой странице значение $ uid равно 3, поэтому оно находится в массиве.

Однако следующее говорит, что его там нет:

if(in_array($uid, $friend_array)){
  $is_friend = true;
}else{
  $is_friend = false;

Это всегда возвращает false. Я повторяю $ uid, и он равен 3. Я печатаю массив, и там 3.

Что я делаю не так? Любая помощь будет принята с благодарностью!

Ответы [ 3 ]

4 голосов
/ 07 августа 2011

Выход

Array ( [0] => 3,2,5 ) 

... будет получено, если массив будет создан примерно так:

$friend_array = array();
array_push($friend_array, '3,2,5');
print_r($friend_array);

Судя по твоему вопросу, я не думаю, что ты хотел это сделать.

Если вы хотите добавить три значения в первые три индекса массива, сделайте следующее:

$friend_array = array();
array_push($friend_array, '3');
array_push($friend_array, '2');
array_push($friend_array, '5');

или, как сокращение для array_push ():

$friend_array = array();
$friend_array[] = '3';
$friend_array[] = '2';
$friend_array[] = '5';
3 голосов
/ 07 августа 2011

Array ( [0] => 3,2,5 ) означает, что элемент массива 0 является строкой 3,2,5, поэтому перед проверкой is_array для $uid необходимо сначала разбить эту строку на массив, используя , в качестве разделителя, а затем проверьте $uid:

// $friend_array contains as its first element a string that
// you want to make into the "real" friend array:
$friend_array = explode(',', $friend_array[0]);

if(in_array($uid, $friend_array)){
  $is_friend = true;
}else{
  $is_friend = false;
}

Рабочий пример

0 голосов
/ 07 августа 2011

Похоже, ваш $ friend_array настроен неправильно. Каждое значение 3, 2 и 5 нуждается в своем собственном ключе в массиве для работы in_array.

Пример:

$friend_array[] = 3;
$friend_array[] = 2;
$firned_array[] = 5;

Ваш оператор if будет работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...