Nike Yulistia Angreni
Nike Yulistia Angreni

Reputation: 311

How to show looping result in PHP

I have an array:

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
        )
)

I loop that's array into this code:

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);
}

But it when I got out the result, i just find 1 result, it must be 4 result.

echo json_encode(array('valuator'=>$arrValuator,'valuated'=>$arrValuated));

The result:

{"valuator":[{"valuator_name":"asad"}],"valuated":[{"valuated_name":"desan"}]}

How to fix it? Thanks

Upvotes: 0

Views: 79

Answers (2)

Manjeet Barnala
Manjeet Barnala

Reputation: 2995

Try this, you can create array $arrValuated and $arrValuator directly from $post['valuate']

<?php 
$arrValuated=array();
$arrValuator=array();

foreach($post['valuate'] as $valuate )
{
    $arrValuated[] = $perf->loadValuated($valuate['valuated']);
    $arrValuator[] = $perf->loadValuator($valuate['valuator']);
}
?>

Upvotes: 1

Herris
Herris

Reputation: 71

Probably is because of missing [] behind of $dataValuated and $dataValuator in the for loop :

for ($i = 0; $i < $length; $i++) {
    $dataValuated[]=$perf->loadValuated($post['valuate'][$i]['valuated']);
    $dataValuator[]=$perf->loadValuator($post['valuate'][$i]['valuator']);
}

Without [] it will always be one result by replacing the previous value with new one.

Upvotes: 0

Related Questions