在codeigniter php中根据性别显示不同的前缀

时间:2014-03-08 11:53:22

标签: php mysql codeigniter

$all_categories = get_cats($cat);
echo "&nbsp&nbsp"."Sons";

for ($i=0;$i<sizeof($all_categories);$i++) {     
    $arr = get_gender($cat);

    if ($arr[$i]=='0') {
        echo "&nbsp&nbsp".$all_categories[$i].",";
    }  
} 

echo "&nbsp&nbsp"."Daughters";

for ($i=0;$i<sizeof($all_categories);$i++) {     
    $arr = get_gender($cat);

    if ($arr[$i]=='1') {
        echo "&nbsp&nbsp".$all_categories[$i].",";
    }
} 

$all_categories我得到了所有给定ID的孩子,get_catsget_gender都是函数。

0适用于男性,1适用于女性。我想首先显示“儿子”这个词,然后再显示他们的名字,然后再计算儿子的数量,然后再写上“女儿”及其名字和女儿的数量。

现在我正在显示“儿子”这个词然后他们的名字,然后是“女儿”这个词和他们的名字,但即使给定身份证没有孩子,也会显示“儿子”和“女儿”这两个词。

1 个答案:

答案 0 :(得分:2)

未经测试的代码添加了更多未经测试的代码:-) 因为你不知道你是否有'儿子',直到你进入'for'循环,并且可能没有。你必须打印“第一次”打印任何'儿子'的标题。唉,这意味着你当前代码的'first_time'标志。

编辑显示子计数。然后我希望答案能被接受。

在一行上添加了所有名称的打印,然后是计数。

分别添加存储计数,并在计数上显示简单的'和'测试。

$all_categories = get_cats($cat);

$headingPrinted = false;
$sonCount = 0;
$outputLine = '';

for ($i=0;$i<sizeof($all_categories);$i++) {     
    $arr = get_gender($cat);

    if ($arr[$i]=='0') {

        if (!$headingPrinted) {
          $outputLine .= "&nbsp&nbsp"."Sons";
          $headingPrinted = true;
        }    

        // append to the current outputLine...  
        $outputLine .= "&nbsp&nbsp".$all_categories[$i].",";
        $sonCount++;
    }  
} 
// print $outputline and child count if at least one was found. show plural if more than one 
if ($sonCount >= 1) {
   echo $outputLine, $childCount, $childCount == 1 ? 'son': 'sons', ' found';  
} 
else {
  // you may want to do something if none found
}


// repeat for the other heading

$headingPrinted = false;
$daughterCount = 0;
$outputLine = '';

for ($i=0;$i<sizeof($all_categories);$i++) {     
    $arr = get_gender($cat);

    if ($arr[$i]=='1') {

      if (!$headingPrinted) {
        $outputLine .= "&nbsp&nbsp"."Daughters";
        $headingPrinted = true;
      }    


      // append to the current outputLine...  
      $outputLine .= "&nbsp&nbsp".$all_categories[$i].",";
      $daughterCount++;
    }
}  

// print child count if at least one was found 
if ($daughterCount >= 1) {
   echo $outputLine, $childCount, $childCount == 1 ? 'daughter': 'daughters', ' found';  
} 
else {
  // you may want to do something if none found
}

// test combined totals of children...
if ($sonCount == 1 &&  daughterCount == 1) {
   echo 'wow - one of each';   
}