我有以下控制器,
class mycontroller extends CI_Controller
{
public function getvalue() {
$q= $this->db->select(array('value'))
->from('settting')
->get();
$data['data']= $q->result();
$this->load->view('myview',$data);
}
}
在我看来:
的print_r($数据);
提供这样的输出
Array ( [0] => stdClass Object ( [value] => wwwwwwwwwwww ) [1] => stdClass Object ( [value] => 5454546 ) [2] => stdClass Object ( [value] => 6868 ) [3] => stdClass Object ( [value] => 9898 ) [4] => stdClass Object ( [value] => 7878 ) [5] => stdClass Object ( [value] => 212 ) [6] => stdClass Object ( [value] => 87878 ) [7] => stdClass Object ( [value] => 8989 ) [8] => stdClass Object ( [value] => 212 ) )
我正在尝试将每个单值存储在变量
中当我使用时,
foreach($data as $row)
{
echo $row->value;
}
它给了我所有的价值,但我需要将每个值保存在变量中。
我该怎么做呢 像这样,
$var1='wwwwwwwwwwww'; // [0 ] array value
$var2='5454546'; // [1] array value
答案 0 :(得分:4)
最好将它保存到另一个数组
$my_values = array();
foreach($data as $row)
{
$my_values[] = $row->value;
}
现在你有:
echo $my_values[0]; // wwwwwwwwwwww
echo $my_values[1]; // 5454546
答案 1 :(得分:4)
打印查询变量时,
print_r($query);
你会得到以下结果
Array ( [0] => stdClass Object (
[Id] => 14
[username] => john
[password] => e10adc3949ba59abbe56e057f20f883e
[email] => john@gmail.com
[key] => 7f55570435fd15393f27eaac659b078a
[is_active] => 1
[gender] => Man
[countryid] => 1
[stateid] => 4
[cityid] => 4
[age] => 31
) )
因此,如果您想从此数组中获取单个元素的值,可以编写以下代码 -
echo $query[0]->username;
然后你得到以下值
john
我希望这可以解决你的问题。我相信你可能已经找到了答案。但是我遇到了同样的问题,所以我认为它可能对某些人有帮助。
答案 2 :(得分:1)
您可以尝试这样
class mycontroller extends CI_Controller
{
public function getvalue() {
$q = $this->db->select(array('value'))
->from('settting')
->get()
->result_array();
$i = 0;
foreach($q as $val)
{
${'var' . ++$i} = $val['value']; // Here we put each value in new variable, with variable name var1, var2, ...
}
echo $var1;
echo $var2;
$this->load->view('myview',$data);
}
}
答案 3 :(得分:1)
你的策略是完全错误的。您正在从控制器调用db调用,该控制器会破坏MVC规则。为此创建一个模型。
Class Value Extends CI_Model{
function __construct(){
parent::__construct();
}
function getValue(){
return $this->db
->select(array('value'))
->from('settting')
->get();
->result();
}
现在从控制器中调用它
class mycontroller extends CI_Controller
{
$this->load->model('value');
public function getvalue() {
$data['value']= $this->value->getValue();
$this->load->view('myview',$data);
}
}
现在在视图中
foreach($value as $row)
{
echo $row;
}
答案 4 :(得分:0)
Look数组包含“stdClass Object”对象。所以你需要将对象转换为数组。所以转换使用,
$data= $q->result();
$data['data']=$data->result_array(); or $data->row_array();
答案 5 :(得分:0)
使用一些临时变量循环遍历结果以构造变量。但我不知道将数组值存储在单独的变量中的用法是什么: - )
$i = 0;
foreach($data as $row)
{
$var_.$i = $row->value;
$i++;
}