我正在使用CodeIgniter PHP foreach循环浏览我的电子邮件列表,找出任何不符合正则表达式要求的旧电子邮件并将其列出。
我在显示对象的结果时遇到了一些麻烦。
这就是我所拥有的:
PHP:
$this->db->where('status', 'subscribed');
$email_preliminary=$this->db->select('email')->get('user');
$email_raw = array();
foreach ($email_preliminary->result() as $row):
$email_to_test=$row->email;
if(filter_var($email_to_test, FILTER_VALIDATE_EMAIL)||preg_match('/\d*[1-9]\d*/', $email_to_test))
{
$email_raw[] = $email_to_test;
}
else{
}
endforeach;
$record_raw=array_unique($email_raw);
$data['record'] = json_decode (json_encode ($record_raw), FALSE);
$this->load->view('login&signup/signup_test_view', $data);
}
在Signup_test_view的HTML中,我有:
<?php foreach ($record->result() as $row): ?>
<span><?php echo $row->email; ?></span><br>
<?php endforeach; ?>
错误消息msg说:
在D:\ views \ login&amp; signup \ signup_test_view.php中的非对象上调用成员函数result()
但我认为我已经将数组转换为对象:
$data['record'] = json_decode (json_encode ($record_raw), FALSE);
非常感谢!
答案 0 :(得分:0)
json_decode($str,false)
的输出是一个普通对象,没有任何方法。
尝试:
<?php foreach ($record as $row): ?>
<span><?php echo $row->email; ?></span><br>
<?php endforeach; ?>
我认为$data['record']
已映射到$record
中的signup_test_view.php
。
答案 1 :(得分:0)
$ record是没有方法的简单数组。 尝试使用$ record而不是$ record-&gt; result()到$ record。
玩得开心。