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

); 次のような関数を作成したい:

function get_downline($userid,$users_array){
}

次に、値が$useridであるすべてのユーザーのアップラインキーの配列を返します。誰もが助けてくれることを願っています。お願いします...

4

3 に答える 3

3

単純なループでそれを行うことができますが、この機会を利用してPHP5.3無名関数をデモンストレーションしましょう。

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

ところで、あなたの質問はあまり明確ではないので、これがあなたが望むものであるかどうかはわかりません。

于 2012-04-09T00:53:50.987 に答える
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.....
             }
         }
    }
于 2012-04-09T00:59:27.280 に答える
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);
于 2012-04-09T00:59:43.273 に答える