我在使用多维数组时访问/创建foreach语句有问题。
在我的控制器中,我有以下内容:
$data = array();
$temp = array();
...
some codes here
...
array_push($data, $temp);
$this->load->view('view', $data);
$data数组包含如下内容:
Array(
[0]=>
Array(
[information]=>
Array(
[name]=>John Doe
[age] =>21
)
[data]=>
Array(
[earnings]=>
Array(
[salary]=>21000
[bonus]=>1000
)
[deductions]=>
Array(
[tax]=>1000
[loan]=>0
)
)
)
[1]=>
Array(
[information]=>
Array(
[name]=>George Read
[age] =>23
)
[data]=>
Array(
[earnings]=>
Array(
[salary]=>20000
[bonus]=>1000
)
[deductions]=>
Array(
[tax]=>990
[loan]=>200
)
)
)
)
我应该做些什么才能打印/回显数据?非常感谢您的帮助。
如果您试图访问控制器中分配给$data
的变量,则使用数组的索引作为变量。如果你想回显视图中的变量,你可以使用
echo $0['information']['name'];
如果想使用Foreach循环,可以使用嵌套的Foreach循环。但在这种情况下,最好将$temp
数组分配给控制器
$data['temp_array'] = $temp;
那么foreach循环看起来像这样:
<<p> 视图/strong>foreach ($temp_array as $array_name => $array) {
echo $array_name;
foreach ($array as $key => $value) {
echo $key ': ' . $value;
}
}
关于循环遍历多维数组的信息,请参阅此页。
首先在控制器文件中定义数组像这样:
$array = array(
0 => array(
"foo" => "bar",
42 => 24,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
),
1 => array(
"foo" => "bar",
42 => 24,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
)
);
现在的问题是,如何访问[0]或[1]!为此,将该数组赋值给$data['arbitrary_variable']
在视图文件中,你可以直接使用$arbitrary_variable作为数组。
控制器代码:public function index() {
$data['magic'] = $array = array(
0 => array(
"foo" => "bar",
42 => 24,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
),
1 => array(
"foo" => "bar",
42 => 24,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
)
);
$this->load->view('test',$data);
}
视图代码:
<?php
print_r($magic);
echo '<br/>';
echo $magic[0]['foo'];
?>
这里的想法是把你想要的数组放到另一个数组中,即不直接赋值给$data,而是赋值给data
您应该做以下更改:
1)你应该尝试添加一个元素到你传递给视图的数据数组中,这样你就可以访问该元素并循环它。
$data = array();
$temp = array();
//some codes here
array_push($data['anametoaccess'][], $temp); //this will give us a element name to access and loop the array
$this->load->view('view', $data);
2)这是视图的代码:
foreach( $anametoaccess as $key => $each ){
$information = $each['information']; //now you have the information array in $informationarray
$earnings = $each['data']['earnings'];
$deductions = $each['data']['deductions'];
}