Разные позиции в массиве - PullRequest
0 голосов
/ 30 марта 2012

У меня есть SQL-запрос, который выводит массив, вывод которого выглядит следующим образом

Array
(
[0] => Array
    (
        [customer_id] => 7
        [language_id] => 1
        [variableitem_id] => 13
        [name] => QUESTION_HEADLINE
        [value] => Bitte geben Sie Ihren Downloadkey ein:
    )

[1] => Array
    (
        [customer_id] => 7
        [language_id] => 1
        [variableitem_id] => 15
        [name] => QUESTION_BUTTON
        [value] => Start!
    )

[2] => Array
    (
        [customer_id] => 7
        [language_id] => 1
        [variableitem_id] => 6
        [name] => PAGETITLE
        [value] => Steigenberger Hotels and Resorts - Mediathek
    )
)

В моем контроллере я получаю его как

$data['variables_data'] = $this->Home_model->getVariables($customer_id, $language_id);

Теперь для различных идентификаторов в URL, какдля

 localhost/home/user/12 and  localhost/home/user/14

позиции переменной отличаются

, например, на мой взгляд, когда я повторяю

$variable[0]['value']

, это дает QUESTION_HEADLINE для одного пользователя и PAGE_TITLE для другого,Можно ли сделать их одинаковыми для всех пользователей, например, если я эхо

 $variable[0]['value'] 

, это должно возвращать мне QUESTION_HEADLINE каждый раз и для каждого пользователя

Код для модели дома Функция get_variables

function getVariables($customer_id, $language_id) {
    $query = $this->db->query("SELECT customers_idcustomers AS customer_id, 
                               languages_idlanguages AS language_id, 
                               variableitems_idvariableitems AS variableitem_id,
                               variableitem AS name, 
                               variabletext AS value
                               FROM variables v
                               LEFT JOIN variableitems vi ON v.variableitems_idvariableitems = vi.idvariableitems
                               WHERE v.customers_idcustomers ='" . $customer_id . "' 
                               AND v.languages_idlanguages =" . $language_id
    );
    $var = $query->result_array();
    return $var;
}

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Итак, насколько я понимаю, вы хотите уменьшить выход до одного измерения. Это можно сделать и с помощью MYSQL. Вот версия php:

В вашем контроллере

$data = $this->Home_model->getVariables($customer_id, $language_id);
$data['variables'] = array(
    'customer_id' => $data[0]['customer_id'],
    'language_id' => $data[0]['language_id'],
    'variableitem_id' => array(),
    'name' => array(),
    'value' => array()
);

foreach($data as $k => $v) {
   $data['variables']['variableitem_id'][] = $v['variableitem_id'];
   $data['variables']['name'][] = $v['name'];
   $data['variables']['value'][] = $v['value'];
}

А по вашему мнению

 echo $variables['value'][2].' '.$variables['value'][3];
 //do whatever you want
0 голосов
/ 30 марта 2012

Вы можете установить его явно, как

foreach($outArray as $output) { $output['name']="Any thing you want"; }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...