2

I have json decode set to true for array output.. This is the following format of response from using curl:

{
  "process_time": 0.018849853,
  "data": [
    {
      "id": "recent_search",
      "name": "",
      "items": []
    },
    {
      "id": "recent_view",
      "name": "",
      "items": []
    },
    {
      "id": "popular_search",
      "name": "",
      "items": []
    },
    {
      "id": "digital",
      "name": "DIGITAL",
      "items": []
    },
    {
      "id": "autocomplete",
      "name": "AUTOCOMPLETE",
      "items": [
        {
          "keyword": "tas wanita batam",
          "url": "/search?q=tas+wanita+batam&source=universe&st=product",
        },
        {
          "keyword": "tas wanita import",
          "url": "/search?q=tas+wanita+import&source=universe&st=product",
        },
        {
          "keyword": "tas wanita murah",
          "url": "/search?q=tas+wanita+murah&source=universe&st=product",
        },
        {
          "keyword": "tas wanita branded",
          "url": "/search?q=tas+wanita+branded&source=universe&st=product",
        },
        {
          "keyword": "tas wanita fossil",
          "url": "/search?q=tas+wanita+fossil&source=universe&st=product",
        }
      ]
    }
  ]
}

My PHP Code:

<?php
$url = 'hxxp://domain.com/univ/v8?q=tas+wanita';
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$r=curl_exec($ch);
curl_close($ch);

print_r(json_decode($r, true));
?>

I want to save the parts items "keyword" only in php variable..

How can I do it? And what would be the best way of doing it?

0

1 Answer 1

1
    <?php
        $url = 'hxxp://domain.com/univ/v8?q=tas+wanita';
        $ch=curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $r=curl_exec($ch);
        curl_close($ch);

        $data = json_decode($r, true);
        $i=0;
        foreach($data['data'] as $val) {
          foreach($val['items'] as $key => $item) { //it may give warning because empty array (i.e items = [].
             $keywords[$i] = $item['keyword']; // this will store keyword in $keywords array.
             $i++;
          }
        }
        $message = '<html><body>';
        $message .= '<table border="1" cellpadding="10">';
        $message .= "<tr><th><strong>Sr. No.:</strong> </th><th> 
                     <strong>Keyword</strong> </th></tr>";
        foreach ($keywords as $key => $value) {
           $message .= "<tr><td>".$key." </td><td>" .$value. "</td></tr>";
        }
        $message .= "</table>";
        $message .= "</body></html>";
        echo $message;
    ?>

The foreach construct provides an easy way to iterate over arrays. foreach works only on arrays and objects, and will issue an error when you try to use it on a variable with a different data type or an uninitialised variable.

Sign up to request clarification or add additional context in comments.

2 Comments

Wow.. Thanks for fast Answer :D
answer edited!. use browser to check table, in CLI you will get HTML.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.