array에서 출력할때 원하는값만 출력하기 채택완료

Copy
$name = array(

"001"=> array("name" => "홍길" "se" => "m"),
"002"=> array("name" => "아이" "se" => "w")

)

foreach($name as $key => $value){
           echo $value[name];
}

 

대충 이런식으로 되어있는데 전 홍길만 출력하고 싶습니다.

실제는 값이 많아서 인덱스로 가져오면 힘듭니다.

 

근데 $value[name]으로 가져와버리니깐 조건으로 se = m 을 줄수가 없겠떠라구요.

 

Copy
if($value[se] == "m")

{ echo $value[name];

}else{

echo $value[name];

}

 

이런식으로 if으로 se를 체크해도 가져오는게 $value[name]이다보니;; 전체출력되는데

어떻게 해야할까요?

echo $value[name] and $value[se] == m

이런것도 아니고..

답변 4개

채택된 답변
+20 포인트

하고싶은 작업이 뭔가요?

배열에서 se==m일때의  name을 가져오고싶은건가요?

$name = array(
"001"=> array("name" => "홍길", "se" => "m"),
"002"=> array("name" => "아이", "se" => "w")
);
foreach($name as $key => $value){
 if($value[se] == "m") echo $value[name];
}

이렇게 하면 되는데 쓸데없이 else echo $value[name]; 이걸 넣어놓으니 모든 이름이 나오죠

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

위 올리신 코드 오류납니다 

아래와같이 수정하시고 array_splice 원하는 값 구하면됩니다.

 

Copy
$name = array(
"001"=> array("name" => "홍길","se" => "m"),
"002"=> array("name" => "아이","se" => "w")
);

 

 

$tmp = array_splice($name["001"],0,1);
echo $tmp[name];
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

갯수가 많아서 이렇게 짜르기엔..

댓글을 작성하려면 로그인이 필요합니다.

Copy
$name = array(
"001"=> array("name" => "홍길", "se" => "m"),
"002"=> array("name" => "아이", "se" => "w")
);
foreach ($name as $key => $value) {
    if ($value['name'] != '홍길') continue;
    echo $value[name];
}
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Copy
$name = array(
"001"=> array("name" => "홍길", "se" => "m"),
"002"=> array("name" => "아이", "se" => "w")
)
foreach($name as $key => $value){

    foreach($value as $k => $val) {

        if ($val == "홍길")

            echo $val."<BR>";

    }
    //       echo $value[name];
}

 

이렇게 하면..

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고