1

関数に 2 つの配列を渡しています。次に、最初の配列をループして、2 番目の配列に対していくつかの値をチェックしたいと考えています。問題は、2 番目の配列が奇妙な値を与え、ロジックを壊していることです。誰かが私が愚かである場所を指摘できますか?

関数

function completion($check, $values){

$num = count($values);
$i=0;
foreach($values as $a){
    foreach($check as $b){
       if($b[$a] == ''){
          return '<span class="w"><i>incomplete</i></span>';
          break;
       }
    }

    $i++;
}
if ($i == $num);
   return;

}

$values = array('short_bio', 'industry_sector', 'profile_status', 'country', 'locations', 'noe');

$check = ( [row] => 1 [user_id] => 2 [company_name] => mylittlefish [industry_sector] => Automotive / Aerospace [job_title] => Director [profile_status] => [first_name] => Joe [last_name] => Hodgson [package] => [sector] => Catering [recruitment_status] => Keeping an ear to the ground [country] => UK [locations] => Doncaster [noe] => 5 [user_recruitment_status] => [user_endorsements] => [short_bio] => test [previous_job_title] => [summary] => [profile] => [cover] => )

エコーすると$b[$a]、次のようなものが得られます。

612mADJHCKUD5t12mADJHKUD5t12mADJHCKUD5t12mADJHCKUD5t12mADJHKUD5t12mADJHCKUD5t6

あなたが助けてくれることを願っています

ジョー

4

3 に答える 3

1

あなたのループは次のようになるはずです:

foreach($values as $a){
       if(!isset($check[$a]) || empty($check[$a])) {
          return '<span class="w"><i>incomplete</i></span>';
          break;
       }
    $i++;
}
于 2012-08-16T12:04:27.577 に答える
0
  1. CompanyInfo 配列が定義されていません
  2. $check 配列にカンマがなく、文字列値が引用符で囲まれていません

    $companyInfos = array();
    $companyInfo[0] = array( "row" => 1, 
                     "short_bio" => "Painter", "status" => "Single");
    
    $companyInfo[0] = array( "row" => 2, 
                     "short_bio" => "Designer", "status" => "Married");
    
     $values = array('short_bio', 'industry_sector',
                'profile_status', 'country', 'locations', 'note');
    
    foreach($companyInfos as $companyInfo)
    foreach($values as $val)
    {
        if($companyInfo[$val] =='')
         echo '<span class="w"><i>incomplete</i></span>';
    
    }
    
于 2012-08-16T12:21:35.177 に答える
0
function completion($check, $values){
    foreach($values as $a){
       foreach($check as $b=>$value){
           if($b == $a && $value == ''){
               return '<span class="w"><i>incomplete</i></span>';                   
           }
       }

    }
}

また

function completion($check, $values){
    foreach($values as $a){
        if (array_key_exists($a,$check) && $check[$a] == '') return '<span class="w"><i>incomplete</i></span>'; 
    }
}
于 2012-08-16T12:16:56.837 に答える