2012-08-02 42 views
0

我試圖創建一個joomla組件。該組件是關於生成一個句子。基本上,這裏的代碼/函數將幫助我生成它。Joomla組件中的錯誤

function getCategory() 
{ 
    $cat = array("walk","reside","eat"); 
    return $b = $cat[array_rand($cat)]; 
} 
function getS1() //function 1.1 
{ 
     $db = JFactory::getDBO(); 
     $query = "select words from #__wordbank where function = 1.1 order by rand() LIMIT 1"; 
     $db->setQuery($query); 
     return $db->loadResult(); 
} 

function getV11() //function 2.11 
{ 
    $db = JFactory::getDBO(); 
    $b = getCategory(); 
    $query = "select words from #__wordbank where function = 2.11 AND category = '$b' order by rand() LIMIT 1"; 
    $db->setQuery($query); 
    return $db->loadResult(); 
} 
function getP1() //function p1.1 
{ 
    //load preposition 
    $db = JFactory::getDBO(); 
$b = getCategory(); 
    $query = "select words from #__wordbank where function = 'p1.1' AND category = '$b' order by rand() LIMIT 1"; 
    $db->setQuery($query); 
    return $db->loadResult(); 
} 
function getP2() //function p1.2 
{ 
    //load noun 
    $db = JFactory::getDBO(); 
    $b = getCategory(); 
    $query = "select words from #__wordbank where function = 'p1.2' AND category = '$b' order by RAND() limit 1"; 
    $db->setQuery($query); 
    return $db->loadResult(); 
} 

問題是當我getCategory()返回值總是不一樣的。我嘗試使用,但如果它仍然返回不同的值,因爲$cat[array_rand($cat)]。將不勝感激,如果你們可以幫我解決這個錯誤

+0

我能看到結果。 – 2012-08-02 03:43:13

+0

當然。 我這樣說 Key:subject;價值:他 鍵:動詞;價值:嚼 鍵:介詞;價值:在 鍵:名詞;價值:一所學校 – eez 2012-08-02 03:45:15

+0

問題是'嚼'是從db分到'吃'類,'學校'是'走'類。結果必須在同一類別 – eez 2012-08-02 03:46:43

回答

0

你必須使用array_rend。此功能選擇一個或多個隨機出的數組

看到網址中: -

http://php.net/manual/en/function.array-rand.php

<?php 
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank"); 
$rand_keys = array_rand($input, 2); 
echo $input[$rand_keys[0]] . "\n"; 
echo $input[$rand_keys[1]] . "\n"; 
?> 
+0

明白了。 so $ rand_keys [0]會返回數組的任何東西嗎?我只需要 $ cat = array(「walk」,「reside」,「eat」); $ b = array_rand($ cat); 返回$ b [$ rand_keys [0]]; – eez 2012-08-02 03:59:33