假設(shè)你上面給出的數(shù)組為$arr。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)金門(mén),十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):13518219792
$t1=0;
$t2=0;
.....
foreach($arr as $v){
if($v['age']=10||$v['age']=20){
$t1+=1; //10-20歲的數(shù)量
}
if($v['age']20||$v['age']=30){
$t2+=1; //20-30歲的數(shù)量
}
.... //按照類(lèi)似寫(xiě)法繼續(xù)寫(xiě)
}
希望能幫到你,望采納。
年齡(周歲)的算法是固定的,假設(shè)當(dāng)前年、當(dāng)前月、當(dāng)前日、生年、生月、生日6個(gè)整數(shù)變量分別代表當(dāng)前的和出生時(shí)的年月日,那么年齡的計(jì)算采用下面兩個(gè)步驟:
年齡=(當(dāng)前年-生年) - 1;
IF (當(dāng)前月生月 || 當(dāng)前月=生月 當(dāng)前日生日) 年齡=年齡+1;
在PHP寫(xiě)的程序,主要是注意變量類(lèi)型轉(zhuǎn)換,下面的例子程序:
?php
$birth='1972-9-18';
list($by,$bm,$bd)=explode('-',$birth);
$cm=date('n');
$cd=date('j');
$age=date('Y')-$by-1;
if ($cm$bm || $cm=$bm $cd$$bd) $age++;
echo "生日:$birth\n年齡:$age\n";
?
補(bǔ)充:我這個(gè)能滿(mǎn)足你的要求,是非常精確的。
樓上這位如果真要求個(gè)大概的話(huà),這樣算就復(fù)雜了,直接用date('Ymd')-日期(yyyymmdd)拿起來(lái)除就可以了。
如果是要求精確的,其實(shí)樓主的思路已經(jīng)很好了,你把它寫(xiě)完善一點(diǎn)就行了。
先日-日,差的話(huà)找月借,然后月減月,差的話(huà)找年借,最后年減年,恩,差不多就這個(gè)思路了。
寫(xiě)了一個(gè),不考慮系統(tǒng)占用,只考慮功能的實(shí)現(xiàn):
?php
$you = 19000228;
$now = date('Ymd');
//$now = 19000501; //這一行是用來(lái)測(cè)試的
//分解當(dāng)前日期為年月日
$y = (int)($now/10000);
$m = (int)(($now%10000)/100);
$d = $now%100;
//分解生日為年月日
$yy = (int)($you/10000);
$ym = (int)(($you%10000)/100);
$yd = $you%100;
//特殊日期計(jì)算
if($years%4==0 || ($years%100==0$years%400==0)){
$special=29;
}else{
$special=28;
}
//各月的上個(gè)月的天數(shù)
switch($m){
case 2:$add=31;
case 3:$add=31;
case 6:$add=31;
case 8:$add=31;
case 9:$add=31;
case 11:$add=31;
case 1:$add=31;
case 5:$add=30;
case 7:$add=30;
case 10:$add=30;
case 12:$add=30;
case 3:$add=$special;
}
if($d$yd){
$d+=$add;
$m-=1;
}
if($m$ym){
$m+=12;
$y-=1;
}
//運(yùn)算年齡
if($now=$you){
$days=$d-$yd;
$months=$m-$ym;
$years=$y-$yy;
//顯示年齡
echo $years."歲".$months."月".$days."天";
}else{
echo "您還沒(méi)投胎不能計(jì)算生日..";
}
?
不知道你的語(yǔ)句報(bào)什么錯(cuò),我認(rèn)為你不應(yīng)該使用right來(lái)取日期里面的你、月、日,應(yīng)該使用YEAR、MONTH、DAY函數(shù)
另外,你不能使用SELECT后面的別名作為WHERE的條件,必須使用數(shù)據(jù)庫(kù)表的字段作為條件,你要獲取65歲以上的可以使用這樣:
WHERE csrqMAKEDATE(YEAR(NOW())-65, DAYOFYEAR(NOW()))