Итак, у меня есть следующий php:
<?php
$user_id = get_current_user_id();
$user_number= get_user_meta($user_id, 'number', false);
$numbers= print_r($user_number);
?>
Я получаю следующее:
Array
(
[0] => Array
(
[1] => 769099
[2] => 768785
[3] => 769135
[4] => 769118
[5] => 769136
[6] => 769122
[7] => 769130
)
)
Теперь я пытаюсь использовать in_array
для добавления условия следующим образом:
<?php if (in_array ($number_id, $numbers)){?>
где $ number_id является одним из числа в массиве.
У меня есть два вопроса:
Должен ли я использовать print_r
для получения значений вместо простого указания Array
для использования in_array
?
Как я на самом деле пользователь in_array
? в этом случае?
(Например, используя get_user_meta
, я просто получаю Array
. Я не хочу использовать print_r
. Как мне это сделать? Спасибо!)
print_r()
обычно печатает ваш массив. Ваш код должен быть:
<?php
$user_id = get_current_user_id();
$user_number= get_user_meta($user_id, 'number', false);
?>
Если вы хотите проверить number_id
в вашем current user number
массиве current user number
ваш код должен быть:
if(in_array('769118',$user_number[0])){ // 769118 is $number_id
echo "Match Found";
}else{
echo "No Match Found";
}
Вы можете сослаться на эту ссылку: in_array
print_r()
- это только функция для отображения значений внутри массива.
В вашем случае функция get_user_meta()
возвращает числа, связанные с user_id, и ничего больше.
И функция in_array()
должна проверять наличие определенного значения внутри массива.
print_r
. И <?php if (in_array ($number_id, $user_number)){?>
Это правильно? (не похоже на работу) ...
попробуй это
<?php if (in_array ($number_id, $user_number[0])){?>
0
и 1
?
0 != 1
.. этот ответ не решает проблему .. @Sugumar вы добавили 2 ответа, но оба они неправильные .. вам следует уделить больше внимания, прежде чем добавлять ответы
in_array ($number_id, $numbers[0])