php - Change my array dynamically -


i have function returns array this:

[ "var0 =>    300  pr. d. joÃo", "var1 =>a passar", "var2 =>", "var3 =>    904  q.bela vista", "var4 =>a passar", "var5 =>", "var6 =>    905  monte virgem", "var7 =>a passar", "var8 =>", "var9 =>    300  telheira - c", "var10 =>a passar", "var11 =>", "var12 =>   200  cast. queijo", "var13 =>20:39", "var14 =>5min"  ] 

and need result next example: it's necessary in format.

[ "route" =>  "300  pr. d. joÃo", "eta" =>"a passar", "waittime" =>"", "route" =>  "904  q.bela vista", "eta" =>"a passar", "waittime" =>"", "route" =>" 905  monte virgem", "eta" =>"a passar", "waittime" =>"", "route" =>" 300  telheira - c", "eta" =>"a passar", "waittime" =>"", "route" =>" 200  cast. queijo", "eta" =>"20:39", "waittime" =>"5min" ] 

and webservice php code is:

function getpage ($codigo) {     $link = "http://www.stcp.pt/pt//itinerarium/soapclient.php?codigo=";     $dom = new domdocument();     $homepage = file_get_contents($link.$codigo);     $dom->loadhtml($homepage);     $tables = $dom->getelementsbytagname('table');     $table = $tables->item(0);     $i = 0;     $var = array();     foreach ($table->childnodes $tr) {       if ($tr->nodename == 'tr') {         foreach ($tr->childnodes $td) {             $i++;             $tds= $td->nodevalue;             if ($i%2 == 0) {             } else {                 array_push($var, $tds);                              }         }       } else {         echo "string ";       }     }     $first = array_shift($var);                  $second = array_shift($var);                     $third = array_shift($var);     $maxvar = sizeof($var);     $final_array = array();     ($k=0; $k < sizeof($var); $k++) {          ${'var' . $k} = $var[$k];         array_push($final_array, "var$k =>".$var[$k]);     }     echo json_encode($final_array); } 

how can return json example show?

because associative arrays must have unique keys, cannot have route, eta, or waittime appearing more once in output. can create nested array represents data quite nicely.

$a = [ "var0 =>    300  pr. d. joÃo", "var1 =>a passar", "var2 =>", "var3 =>    904  q.bela vista", "var4 =>a passar", "var5 =>", "var6 =>    905  monte virgem", "var7 =>a passar", "var8 =>", "var9 =>    300  telheira - c", "var10 =>a passar", "var11 =>", "var12 =>   200  cast. queijo", "var13 =>20:39", "var14 =>5min" ];  function removevarprefix($x) {     return preg_replace('/^var\d+\s*=>\s*/', '', $x); }  $b = array_map(function($set) {     list($route, $eta, $waittime) = array_map('removevarprefix', $set);     return ['route'=>$route, 'eta'=>$eta, 'waittime'=>$waittime]; }, array_chunk($a, 3));  echo json_encode($b, json_pretty_print); 

output (updated show json)

[     {         "route": "300  pr. d. jo\u00c3o",         "eta": "a passar",         "waittime": ""     },     {         "route": "904  q.bela vista",         "eta": "a passar",         "waittime": ""     },     {         "route": "905  monte virgem",         "eta": "a passar",         "waittime": ""     },     {         "route": "300  telheira - c",         "eta": "a passar",         "waittime": ""     },     {         "route": "200  cast. queijo",         "eta": "20:39",         "waittime": "5min"     } ]  

Popular posts from this blog

php - How should I create my API for mobile applications (Needs Authentication) -

5 Reasons to Blog Anonymously (and 5 Reasons Not To)

Google AdWords and AdSense - A Dynamic Small Business Marketing Duo