2016-10-06 3 views
0

Как я могу выполнить сравнение, когда мой массив возвращает значение с индексом.Сравнение значения одиночного массива

Возвращается значение Array ([IsMember] => 0), и я хочу сделать для сравнения по значению только

if ($memberStatus == 0) 
    { 
    print_r($memberStatus); 
    } 
+2

Какое сравнение? Индекс? Значение? –

ответ

1

Если у вас есть массив как это:

$data = [ 'isMember' => 0, 'data1' => 1, 'data2' => 2 /* ... */ ]; 

вы можете получить доступ к отдельным элементам, используя имя массива и написать ключ в squa повторно скобки:

// change isMember to whatever key-value pair you need 
$memberStatus = $data['isMember']; 

if ($memberStatus === 0) 
{ 
    print 'user is a member'; 
} 

else 
{ 
    print 'user it not a member'; 
} 
+0

Намного лучшего объяснения. Был немного не уверен в том, что было задано. Я думаю: D –

0

Я думаю, что вы ищете:

$myArray = array(
    'isMember' => 0 
); 

if ($myArray['isMember'] == 0) { 
    print_r($myArray['isMember']); 
} 
+2

Это не правильный синтаксис для литерала массива. Или 'array ('isMember' => 0)' или '['isMember' => 0]' – Barmar

+2

И опечатка в 'pritn_r' – Barmar

+0

Простите, друг ... и спасибо. –

2

Объяснения значение

Индекса массива может быть доступ с помощью соответствующих индекса значения, где в качестве значения в ассоциативном массиве может быть доступ с помощью соответствующих ключа вместе с именем массива и между квадратными скобками, которые составляют

массивName ["индекс-значение"]

или

имяМассива [ "ключ-имя"].

Вы можете обратиться к следующему коду.

Код

 //For Associative Array 

    $arrayOne = array(
     'keyone' => 'a', 
     'keytwo' => 'b', 
     'keythird' => 'c' 
    ); 

    if ($arrayOne['keyone'] == 'a') { 
     print_r($arrayOne['keyone']); 
     //output a 
    } 

ИЛИ

//For Index Array 

    $arrayOne = array('a', 'b', 'c'); 

    if ($arrayOne[0] == 'a') { 
     print_r($arrayOne[0]); 
     //output a 
    } 
0

Вы ищете ключ внутри массива? Тогда вам нужно:

echo array_key_exists(9, [1=>'nope',2=>'nope',3=>'nope',9=>'yah']) ? 'Yes it does' : 'it doesn\'t'; 

В противном случае вы ищете:

echo in_array("my value", ["my value", "a wrong value", "another wrong one"]) ? 'yush' : 'naaaaah'; 

В любом случае вы можете использовать как в if заявлении, а не thernary оператора.

+0

OP заявила, что хочет проверить только значение –

+0

Как я уже сказал в своем ответе, функция 'in_array()' именно то, что он ищет, но так как мы коснулись этого земля уже хорошо знает, что функция 'array_key_exists()' может сделать для него также – Solrac

+0

Это правда, но это не то, что он просил. Он сказал, что дал массив, у которого есть ключ, и не МОЖЕТ иметь ключ. Тем не менее его хорошо знать, да. –

0

Я не уверен, какой тип массива вы должны сравнить, потому что, как правило, 2 различных типов из них:

индексированных - Вы выбираете числовой индекс, который делают вы хотите сравнить

$array = array("admin", "moderator", "user"); 

if ($array[0] == "user") { 
    // CODE 
} 

Ассоциативный - вы выбираете строковый ключ, который вы хотите сделать, чтобы сравнить

$array = array("id1" => "member", "id2" => "not member","id3" => "user"); 

if ($array["id2"] == "not member") { 
    // CODE 
} 
Смежные вопросы