我有這個主要工作,但我覺得必須有一個更好的方式來做到這一點。查找並計算字符串中的字符串,然後顯示最高字符串
在該網站上有~60個馬品種。一些馬是「純種」,一些是「雜交」。純種的我沒有問題,但對於十字架,我需要弄清楚它們最爲相似的品種,以便爲該馬展示圖像。
圖像設置如下:horse-Arabian-breed.png與一些PHP和SQL將馬的品種信息從數據庫中拉下來,並將品種插入「horse-」和「-breed.png」之間。
該網站上的十字架顯示爲這樣的「阿拉伯x荷蘭溫暖血統」,這顯然不適合圖像。我的計劃是看看現在的馬,它的母親和父親,這是四個偉大的父母,得到他們所有的品種,找出哪個品種影響最大,然後使用該品種的形象。
這是我目前有:
echo "Start horse breed: $horse_breed <br>";
echo "Sire breed: $sire_breed <br>";
echo "Dam breed: $dam_breed <br>";
echo "Sire Sire breed: $sire_sire_breed <br>";
echo "Sire Dam breed: $sire_dam_breed <br>";
echo "Dam Sire breed: $dam_sire_breed <br>";
echo "Dam Dam breed: $dam_dam_breed <br>";
echo "<br><br>";
$hb = strval($horse_breed);
$sb = strval($sire_breed);
$db = strval($dam_breed);
$ssb = strval($sire_sire_breed);
$sdb = strval($sire_dam_breed);
$dsb = strval($dam_sire_breed);
$ddb = strval($dam_dam_breed);
$breed_hist = $hb.$sb.$db.$ssb.$sdb.$dsb.$ddb;
echo $breed_hist; // outputs: Arabian x ThoroughbredArabianThoroughbredRetiredRetiredThoroughbredThoroughbred
echo "<br>";
$clean_hist = str_replace(" x ", "", $breed_hist);
echo $clean_hist; // outputs: ArabianThoroughbredArabianThoroughbredRetiredRetiredThoroughbredThoroughbred
echo "<br>";
$Arabian = substr_count($clean_hist, 'Arabian');
echo "Arabian: $Arabian"; // output: 2
echo "<br>";
$Thoroughbred = substr_count($clean_hist, 'Thoroughbred');
echo "Thoroughbred: $Thoroughbred"; // output: 4
echo "<br>";
$Warlander = substr_count($clean_hist, 'Warlander');
echo "Warlander: $Warlander"; // output: 0
echo "<br>";`
以上這一切我已經從數據庫中的一些基本的SQL拉動信息。我知道你可以在PHP中使用max()來查找最高值,但我不知道如何將最高值與正確的品種關聯起來(我猜字典可以工作?)。
出於測試目的,我一直在使用:
開始馬品種:阿拉伯純種X
父系品種:阿拉伯
大壩品種:純種
陛下陛下品種:退休
父親水壩品種:退休
大壩父系品種:純種
壩品種:純種
退休意味着有自己的品種沒有更多的信息,這樣一個被忽略,這是罰款。
我試圖弄清楚的另一件事是如何在兩個或更多品種之間隨機選擇,如果有最高配合的倍數。
任何提示,我如何做到這一點更清潔和/或更容易會很好。
謝謝。
是的,字典確實有效。在PHP中是一個數組:http://php.net/array - 無論如何,在這裏爲所有面包使用一個數組,而不是爲品種使用不同的變量,這將使您的生活更加輕鬆。你需要一些指針? – hakre
我同意最簡潔的方式是使用數組來跟蹤給定馬的品種歷史。現在使用像您這樣的標量,您需要遍歷每個品種類型,並跟蹤由substr_count返回的最大數量以及相關的品種類型。 – Vince
像MySQL這樣的PHP數據庫就足夠了,呃? – 2013-01-05 18:15:03