如何在 PHP 中显示循环结果
How to show looping result in PHP
我有一个数组:
Array
(
[0] => Array
(
[phappointment_id] => 69
[phc_id] => 49
[valuator] => 91140961
[valuated] => 87101133
)
[1] => Array
(
[phappointment_id] => 70
[phc_id] => 49
[valuator] => 98160588
[valuated] => 87101133
)
[2] => Array
(
[phappointment_id] => 71
[phc_id] => 49
[valuator] => 91140961
[valuated] => 89140962
)
[3] => Array
(
[phappointment_id] => 72
[phc_id] => 49
[valuator] => 98160588
[valuated] => 94160284
)
)
我将数组循环到这段代码中:
for ($i = 0; $i < $length; $i++) {
$dataValuated=$perf->loadValuated($post['valuate'][$i]['valuated']);
$dataValuator=$perf->loadValuator($post['valuate'][$i]['valuator']);
}
$arrValuated=array();
$arrValuator=array();
foreach($dataValuator as $val){
array_push($arrValuator, $val);
}
foreach($dataValuated as $val){
array_push($arrValuated, $val);
}
但是当我得出结果时,我只找到1个结果,必须是4个结果。
echo json_encode(数组('valuator'=>$arrValuator,'valuated'=>$arrValuated));
结果:
{"valuator":[{"valuator_name":"asad"}],"valuated":[{"valuated_name":"desan"}]}
如何解决?谢谢
可能是因为 for 循环中 $dataValuated 和 $dataValuator 后面缺少 [] :
for ($i = 0; $i < $length; $i++) {
$dataValuated[]=$perf->loadValuated($post['valuate'][$i]['valuated']);
$dataValuator[]=$perf->loadValuator($post['valuate'][$i]['valuator']);
}
如果没有[],则用新值替换旧值将始终是一个结果。
试试这个,您可以直接从 $post['valuate']
创建数组 $arrValuated
和 $arrValuator
<?php
$arrValuated=array();
$arrValuator=array();
foreach($post['valuate'] as $valuate )
{
$arrValuated[] = $perf->loadValuated($valuate['valuated']);
$arrValuator[] = $perf->loadValuator($valuate['valuator']);
}
?>
我有一个数组:
Array
(
[0] => Array
(
[phappointment_id] => 69
[phc_id] => 49
[valuator] => 91140961
[valuated] => 87101133
)
[1] => Array
(
[phappointment_id] => 70
[phc_id] => 49
[valuator] => 98160588
[valuated] => 87101133
)
[2] => Array
(
[phappointment_id] => 71
[phc_id] => 49
[valuator] => 91140961
[valuated] => 89140962
)
[3] => Array
(
[phappointment_id] => 72
[phc_id] => 49
[valuator] => 98160588
[valuated] => 94160284
)
)
我将数组循环到这段代码中:
for ($i = 0; $i < $length; $i++) {
$dataValuated=$perf->loadValuated($post['valuate'][$i]['valuated']);
$dataValuator=$perf->loadValuator($post['valuate'][$i]['valuator']);
}
$arrValuated=array();
$arrValuator=array();
foreach($dataValuator as $val){
array_push($arrValuator, $val);
}
foreach($dataValuated as $val){
array_push($arrValuated, $val);
}
但是当我得出结果时,我只找到1个结果,必须是4个结果。
echo json_encode(数组('valuator'=>$arrValuator,'valuated'=>$arrValuated));
结果:
{"valuator":[{"valuator_name":"asad"}],"valuated":[{"valuated_name":"desan"}]}
如何解决?谢谢
可能是因为 for 循环中 $dataValuated 和 $dataValuator 后面缺少 [] :
for ($i = 0; $i < $length; $i++) {
$dataValuated[]=$perf->loadValuated($post['valuate'][$i]['valuated']);
$dataValuator[]=$perf->loadValuator($post['valuate'][$i]['valuator']);
}
如果没有[],则用新值替换旧值将始终是一个结果。
试试这个,您可以直接从 $post['valuate']
$arrValuated
和 $arrValuator
<?php
$arrValuated=array();
$arrValuator=array();
foreach($post['valuate'] as $valuate )
{
$arrValuated[] = $perf->loadValuated($valuate['valuated']);
$arrValuator[] = $perf->loadValuator($valuate['valuator']);
}
?>