#php #codeigniter #codeigniter-3
#php #codeigniter #codeigniter-3
Вопрос:
У меня есть массив, значение которого при распечатке отображается следующим образом
Array (
[q1] => Array (
[0] => stdClass Object (
[student_unique_id] => 6
[studentname] => studentname
[studentpassword] => 1213
[dob] => 09/05/16
[studentenrollmentnumber] => 1341243124
[studentcontactnumber] => 9460930479
[studentemailid] => abhisehk@mail.com
[studentdepartmentname] => department of agriculture
[studentpasswordtstatus] => 0
)
)
[q2] => Array ( )
)
когда я использую код print_r($prar);
, все эти значения массива поступают из базы данных, и я использую mvc framework codeigniter.Теперь мне нужно разделить массив на 2 новых массива, используя key.Извините, если это звучит глупо, но я здесь новичок!
Комментарии:
1. можете ли вы разделить 2 новых массива, используя
q1
q2
ключи и?2. @razibalmamun извините, но я новичок, и я не знаю, какую функцию использовать для этого?
3. Можете ли вы поместить здесь пример вывода, как вы хотите?
4. @VijaysinhParmar я хочу убедиться, что ключ q1 в массиве сам по себе становится новым массивом, а ключ q2 сам по себе становится вторым массивом!
5. @AbhishekJoshi Пожалуйста, предоставьте свой вывод в поле для комментариев, что вы хотите.
Ответ №1:
Примечание: при использовании print_r()
он будет выводить массив с stdClass Object
помощью CI, когда вы извлекаете значение из базы данных.
Существует решение для отображения массива без использования во stdClass Object
время итерации.
Пример: Рассмотрим $final
рассмотрим массив и при его использовании print_r()
отобразим stdClass Object
.
- Вы должны использовать цикл следующим образом, чтобы избежать
stdClass Object
его при печати.
Код:
Этот код вы можете использовать для получения значений из базы данных с помощью контроллера и модели.
Если из базы данных извлекается одна строка выходных данных
<?php
foreach($final->result() as $single)
{
//You can print the variable values over here as follows (E.g) echo $single->id
}
?>
Если из базы данных извлекается несколько строк выходных данных
<?php
$row=array();
foreach($final->result() as $single)
{
//You can store it as an array here if you are going on with multiple loops
$row[] = $single;
}
print_r($row); // here you can save it as an another array
?>
Как должен выглядеть код модели, если вы используете `->result()` в foreach для получения значений
Вот пример, на который должна выглядеть ваша модель, если вы используете вышеуказанные методы для получения выходных данных.
employee_model.php
<?php
class Employee_model extends CI_Model{
function __construct() {
parent::__construct();
}
public function getEmployees()
{
$this->db->select('*');
$this->db->from('employee');
$this->db->where('delete_status','0');
$this->db->where('status','1');
$this->db->order_by('id','DESC');
$query = $this->db->get();
return $query;
}
?>
Как вызвать модель из контроллера
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends Layout_Controller {
public function __construct(){
parent::__construct();
$this->load->library("pagination");
$this->load->model('employee_model');
$this->load->model('ajax_model');
}
public function employee_listing()
{
$result['all_employee'] = $this->employee_model->getEmployees(); // getEmployees is the function name in the employee_model
$this->load->view('frontend/employee_list',$result);
}
Ответ №2:
Можете ли вы попробовать следующий код :
$new_array = array();
foreach($prar as $key=>$val) {
$new_array[] = $val;
}
echo "<pre>";
print_r($new_array);
или возможное использование extract() — импортировать в таблицу символов переменные, содержащиеся в ассоциативном массиве, возвращаемом wddx_deserialize() .
extract($prar, EXTR_PREFIX_SAME, "wddx");
echo "<pre>";
print_r($q1);
echo "</pre>";
echo "<pre>";
print_r($q2);
echo "</pre>";
Приведенный выше пример выведет:
[0] => stdClass Object (
[student_unique_id] => 6
[studentname] => studentname
[studentpassword] => 1213
[dob] => 09/05/16
[studentenrollmentnumber] => 1341243124
[studentcontactnumber] => 9460930479
[studentemailid] => abhisehk@mail.com
[studentdepartmentname] => department of agriculture
[studentpasswordtstatus] => 0
)
Array ( )
Комментарии:
1. Спасибо за ответ. Надеюсь, что лучше использовать метод, который я предложил, поскольку это будет самый безопасный способ избавиться
stdClass Object
. И это дополнительный процесс для хранения другогоarray()
, поскольку для выполнения кода требуется больше времени. Надеюсь, что вы могли бы лучше понять мои объяснения.