2012-04-09 3 views
-2
$array = array(
array(
    'id' => 1, 
    'name' => 'John Doe', 
    'upline' => 0 
), 
array(
    'id' => 2, 
    'name' => 'Jerry Maxwell', 
    'upline' => 1 
), 
array(
    'id' => 3, 
    'name' => 'Roseann Solano', 
    'upline' => 1 
), 
array(
    'id' => 4, 
    'name' => 'Joshua Doe', 
    'upline' => 1 
), 
array(
    'id' => 5, 
    'name' => 'Ford Maxwell', 
    'upline' => 1 
), 
array(
    'id' => 6, 
    'name' => 'Ryan Solano', 
    'upline' => 1 
), 
array(
    'id' =>7, 
    'name' => 'John Mayer', 
    'upline' => 3 
), 

);PHP로 특정 중복 배열 값을 검색하는 방법

function get_downline($userid,$users_array){ 
} 

그런 다음 내가 $ 사용자 ID와 같은 값을 가진 모든 사용자의 업 라인 키의 배열을 반환 할 : 나는 함수처럼 만들고 싶어. 아무도 도와 줄 수 있기를 바랍니다.

+4

샘플에 거물이 있습니까? 속임수 란 무엇입니까? –

+0

동일한 upline 값을 가진 사용자들의 배열을 검색하고 싶습니다. – johndavedecano

답변

2

경우 $의 id로 당신의 배열을 통해 검색 할 필요

foreach($array as $value) 
{ 
    $user_id = $value["id"]; 
    $userName = $value["name"]; 
    $some_key++; 

    $users_array[$user_id] = array("name" => $userName, "upline" => '1'); 
} 

function get_downline($user_id, $users_array){ 
    foreach($users_array as $key => $value) 
    { 
     if($key == $user_id) 
     { 
       echo $value["name"]; 
       ...do something else..... 
     } 
    } 
} 

또는 '업 라인'으로 검색하기 :

function get_downline($search_upline, $users_array){ 
     foreach($users_array as $key => $value) 
     { 
      $user_upline = $value["upline"]; 
      if($user_upline == $search_upline) 
      { 
        echo $value["name"]; 
        ...do something else..... 
      } 
     } 
    } 
3

당신은 간단한 루프와 함께 할,하지만 이제 PHP 5.3 익명 함수 보여 이번 기회에 사용하게 할 수 ... 제발이 당신이 원하는 경우에 나는 아무 생각이 없다, BTW

function get_downline($id, array $array) { 
    return array_filter($array, function ($i) use ($id) { return $i['upline'] == $id; }); 
} 

을, 당신의 질문이 분명하지 않기 때문에.

+0

basicall 저는 upline 키 값이 '1'인 모든 사용자의 배열을 검색하고 싶습니다. – johndavedecano

+0

이것이이 함수의'$ id' 매개 변수를 기반으로한다면 위와 똑같습니다. – deceze

1

코드 :

function get_downline($userid,$users_array) 
{ 
    $result = array(); 

    foreach ($users_array as $user) 
    { 
     if ($user['id']==$userid) 
      $result[] = $user['upline']; 
    } 
    return result; 
} 
?> 

사용 예 :

get_downline(4,$array); 
관련 문제