2015-12-08 4 views
1

Итак, у меня есть следующий PHP:Использование in_array для массива

<?php 
$user_id = get_current_user_id(); 
$user_number= get_user_meta($user_id, 'number', false); 
$numbers= print_r($user_number);  
?> 

я получаю следующее:

Array 
(
[0] =&gt; Array 
    (
     [1] =&gt; 769099 
     [2] =&gt; 768785 
     [3] =&gt; 769135 
     [4] =&gt; 769118 
     [5] =&gt; 769136 
     [6] =&gt; 769122 
     [7] =&gt; 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. Как мне это сделать? Спасибо!)

+0

in_array (значение, $ array) –

+1

'$ numbers' является многомерным. используйте 'in_array ($ number_id, $ numbers [0])' – roullie

+0

В чем разница между '0' и' 1'? –

ответ

1

print_r() является функцией только для отображения значений в пределах массив.

В вашем случае функция get_user_meta() возвращает номера, связанные с user_id, и ничего более.

И функция in_array() должна проверять наличие определенного значения в массиве.

+0

Итак, я избавился от' print_r'. И '' Это правильно? (кажется, не работает) ... –

0

попробовать этот

<?php if (in_array ($number_id, $user_number[0])){?> 
+0

В чем разница между '0' и' 1'? –

+0

Есть разница .. '0! = 1' .. этот ответ не решает проблему .. @Sugumar вы добавили 2 ответа, но оба ошибаются .. вам стоит больше внимания перед добавлением ответов –

+0

спасибо Matei Mihai Я только что изменил свой ответ –

3

print_r() обычно распечатайте массив. Ваш код должен быть:

<?php 
$user_id = get_current_user_id(); 
$user_number= get_user_meta($user_id, 'number', false); 
?> 

Если вы хотите проверить number_id в вашем current user number массиве, чем ваш код должен быть:

if(in_array('769118',$user_number[0])){ // 769118 is $number_id 
    echo "Match Found"; 
}else{ 
    echo "No Match Found"; 
} 

Вы можете обратиться по этой ссылке: in_array

Смежные вопросы