2016-06-22 11 views
-1

私はPHPで50の変数を持っています。私はそれらのそれぞれをチェックし、本当であれば$pointという変数に2点を追加します。私は新しいので、私はいくつかの行を書くが、私は間違ったやり方をしていると思う。どうすればこのPHPを行うことができますか?

$strenght_point = 0; 

if($f_name){$strenght_point++;} 
if($l_name){$strenght_point + 2;} 
if($full_name){$strenght_point + 2;}  

どのように私はそれを行うことができます右way.Thanks

私の完全な機能がここにある更新... それは{) は、あなたたちは(今も

機能strength_scaleを理解してほしいCodeIgniterのコントローラ機能です

 $user_id = $this->uri->segment(2); 
     $user_name = $this->uri->segment(3); 


      $query = $this->db->get_where('aoa_user', array('id' => $user_id, 'username' => $user_name));  
      foreach ($query->result() as $row){ 

       $f_name = $row->f_name;    
       $l_name = $row->l_name;    
       $full_name = $row->full_name;    
       $username = $row->username;    
       $alias_name = $row->alias_name;    
       $gender = $row->gender;    
       $country = $row->country;    
       $avatar = $row->avatar;    
       $cover_photo = $row->cover_photo; 
       $email = $row->email; 
       $skill = $row->skill; 
       $other_skills = $row->other_skills; 
       $ex_time = $row->ex_time; 
       $about = $row->about; 
       $company = $row->company; 
       $company_position = $row->company_position; 
       $phone = $row->phone; 
       $facebook = $row->facebook; 
       $facebook_page = $row->facebook_page; 
       $google_plus = $row->google_plus; 
       $twitter = $row->twitter; 
       $youtube = $row->youtube; 
       $skype = $row->skype; 
       $linkedin = $row->linkedin;      
       $website = $row->website; 
       $latitude = $row->latitude; 
       $longitude = $row->longitude; 
       $verification = $row->verification; 

      } 

     $strength_point = 0; 

     if($f_name){$strength_point++;} 
     if($l_name){$strength_point + 2;} 
     if($full_name){$strength_point + 2;}  
} 
+3

*次に、あなたが何か間違ったことをやっている*「私は50個の変数を持っています」。おそらく配列を使いたいと思うでしょう。また、新しい値をポイント変数に代入する必要があります。 – Rizier123

+1

なぜそれは間違っていると思いますか?あなたは何らかの形の間違いをしていますか? – castis

+1

あなたは強さが間違っています。それ以外のコードは正しいです。 – durbnpoisn

答えて

2

代わりに変数を使用して配列を作成します。

https://3v4l.org/FYTtG

$arr = array("f_name" => true, "l_name" => true, "full_name" => true); 

$strength=0; 

Foreach($arr as $var){ 
    if($var) $strength = $strength+2; 
} 

Echo $strength; 
+1

次のようにすることができます: '$ strength + = 2;' .... upvoteこれに答える努力をしています。 –

+0

真実、それは考えていない – Andreas

1

Rizier123が言ったように、あなたはあなたの強変数correclyをインクリメントする必要があります。 あなたは50個の変数の一つを受け入れ、強度増分を返す簡単な関数書くことができます:アンドレアスはmentionnedとして

function defineStrength($param) 
{ 
    if ($param) { 
     return 2; 
    } 
    return 0; 
} 

$strength = 0; 

$f_name = true; 
$l_name = false; 
$full_name = false; 

$strength += defineStrength($f_name); 
$strength += defineStrength($l_name); 
$strength += defineStrength($full_name); 

をしかし、配列は、行くには良い方法でしょう。

ご質問の更新で、CodeIgniterを使用しているとお伝えしました。 As the documentation statesクエリ結果を純粋な配列として返すことができます。 は、だから、さらにそのように開発することができ:

function defineStrengthFromArray(array $row) 
{ 
    $strength = 0; 
    foreach ($row as $param) { 
     $strength += defineStrength($param); 
    } 
    return $strength; 
} 

foreach ($query->result_array() as $row){ 

    $strength = defineStrengthFromArray($row); 

} 
+0

いいね!やわらかくてコンパクトではありませんが、やり方は素晴らしいです。 +1私の – Andreas

+0

@アンドレアスおかげで+1)あなたの答えは – postrel

+0

plzはもう一度私は更新しました –

関連する問題