2012-04-09 22 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、無名関数を証明するために、この機会を利用してみましょうことができてくださいしてください:これは何をしたいの場合

ところで
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); 
関連する問題