Ошибка в компоненте 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() возвращаемое значение всегда разное. Я пытаюсь использовать if else, но все равно возвращает другое значение из-за $cat[array_rand($cat)]. Был бы признателен, если бы вы, ребята, могли помочь мне решить эту ошибку


person eez    schedule 02.08.2012    source источник
comment
Конечно. я выразился так Ключ: тема; Значение: he Ключ: глагол; Значение: жует Ключ: предлог; Значение: on Ключ: существительное; Значение: школа   -  person eez    schedule 02.08.2012
comment
проблема в том, что «жует» находится в категории «есть» из db, а «школа» - в категории «прогулка». Результат должен быть в той же категории   -  person eez    schedule 02.08.2012


Ответы (1)


вы должны использовать array_rend. Эта функция выбирает одну или несколько случайных записей из массива

См. URL-адрес: -

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";
?>
person Abid Hussain    schedule 02.08.2012
comment
Понятно. так что $rand_keys[0] вернет что-нибудь из массива, верно? для моей функции мне просто нужно $cat = array(walk,reside,eat); $b = array_rand($cat); вернуть $b[$rand_keys[0]]; - person eez; 02.08.2012