2012-04-09 64 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

你有你的樣品中沒有受騙者?是什麼讓一個愚蠢的? – 2012-04-09 00:35:32

+0

我想要檢索具有相同上線值的用戶數組 – johndavedecano 2012-04-09 00:52:21

回答

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匿名函數:

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

順便說一句,我不知道如果這是你想要的東西,因爲你的問題不是很清楚。

+0

basicall我只想檢索值爲'1'的上線鍵的所有用戶的數組。 – johndavedecano 2012-04-09 01:11:33

+0

如果這是基於這個函數的'$ id'參數,那麼上面就是這樣。 – deceze 2012-04-09 01:17:33

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);