2014-04-17 2 views
0

foreach 루프 내에서 in_array()을 사용하는 데 문제가 있습니다. 나는이foreach에서 in_array를 사용하고 배열을 추출하는 데 일치하는 값이 있습니다.

[0] => 
    name=>1 
    type=>foo 
[1] => 
    name=>2 
    type=>bar 
[2] => 
    name=>3 
    type=>bar 
[3] => 
    name=>4 
    type=>foo 

같은 배열 내가 type = foo있는 모든 배열을 꺼내

if(in_array('foo',$array->type){ *my echo code*} 

를 사용하고 있지만, 그것은 또한 UNMATCH 배열을 가지고 있습니다. 내가 어디서 잘못한거야?

답변

0

당신은 당신은 배열 구문과 비교해야합니다

foreach($yourarr as $k=>$arr) 
{ 
if(in_array('foo',$arr)) 
{ 
    echo key($arr); //"prints" name , name 
} 
} 

Working Demo

+0

음, 방금 문제가있는 곳을 발견했습니다. 처음에는 정확히 당신처럼 코딩했지만 에코 대신 값을 정의했습니다. btw tks u –

+0

@ ŌkamiXOukarin, 다행 :) 언제든지. –

1

$array->type은 (는) 배열이 아닙니다. 그것은 문자열입니다. 문자열 비교와 같이 비교해야합니다.

if('foo' === $array['type']){ *my echo code*} 

또한 배열 액세스를 변경합니다. 어쩌면

+0

$ 배열 [ '유형']하지 $ array-을> 유형 확실히? – Steve

0

.. 잘못을하고있다 :

if('foo' == $array['type']) { 
    /* your code */ 
} 
관련 문제