কীভাবে পিএইচপি ব্যবহার করে জেএসএনের জন্য একটি অ্যারে তৈরি করবেন?


126

পিএইচপি কোড থেকে আমি একটি জসন অ্যারে তৈরি করতে চাই:

[
  {"region":"valore","price":"valore2"},
  {"region":"valore","price":"valore2"},
  {"region":"valore","price":"valore2"}
]

কিভাবে আমি এটি করতে পারব?


উত্তর:


154

সহজ প্যাসি লেবু স্কিজি: http://www.php.net/manual/en/function.json-encode.php

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

andyrusterholz at g-m-a-i-l dot c-o-mপূর্বোক্ত পৃষ্ঠায় একটি পোস্ট রয়েছে যা জটিল নেস্টেড অ্যারেগুলি পরিচালনা করতে পারে (যদি এটি আপনার জিনিস থাকে)।


2
ডাং, হোমি, আপনি সেই উত্তরের তাত্ক্ষণিক ছিলেন =)। আমি সহজ প্রশ্নটি সম্পর্কে উত্তেজিত ছিলাম =)
ক্যালভিন ফ্রয়েজ

2
আমার কাছে এই কোডটি রয়েছে ($ সারি = mysql_fetch_assoc ($ কোয়েরি_ইনসেট)) {$ নিয়ন্ত্রণ = অ্যারে ('অঞ্চলে' => $ সারি ["অঞ্চলে"], 'টোটেল' => $ সারি ["প্রেজি"]); } মুদ্রণ (json_encode (% নিয়ন্ত্রণ)); তবে পুনরায় {"অঞ্চলে": "পুগলিয়া", "টোটাল": "5.15"} না [{..}, {..}]
মিমো

2
লেবু রেফারেন্সের জন্য 1 যুক্ত করুন। :-)
নিষিদ্ধ-জিওঞ্জিনিয়ারিং

আমি এটি করেছি তবে আমি var_dumb ফাংশনটি ব্যবহার করে যে প্রতিক্রিয়া পেয়েছি তা নিম্নলিখিত। আমি কীভাবে স্ট্রিং (59) থেকে মুক্তি পেতে পারি? স্ট্রিং (59) "[{" ফলাফল ":" সাফল্য "}, message" বার্তা ":" ডেটা আপডেট হয়েছে! "}]"
জেমস স্মিথ

115

পিএইচপি এর নেটিভ ব্যবহার করুন json_encode:

<?php
$arr = array(
    array(
        "region" => "valore",
        "price" => "valore2"
    ),
    array(
        "region" => "valore",
        "price" => "valore2"
    ),
    array(
        "region" => "valore",
        "price" => "valore2"
    )
);

echo json_encode($arr);
?>

আপডেট : মন্তব্যে আপনার প্রশ্নের উত্তর দিতে। আপনি এটি এর মতো করুন:

$named_array = array(
    "nome_array" => array(
        array(
            "foo" => "bar"
        ),
        array(
            "foo" => "baz"
        )
    )
);
echo json_encode($named_array);

2
মাফ করবেন তবে আমি যদি want "নাম_আরে": [{"foo": "বার"}, {"foo": "বাজ"}] want চান?
মিম্মো

41

সাধারণ: কেবল একটি (নেস্টেড) পিএইচপি অ্যারে তৈরি করুন এবং json_encodeএটিতে কল করুন। সংখ্যাযুক্ত অ্যারেগুলি JSON তালিকাগুলিতে অনুবাদ করে ( []), সহযোগী অ্যারে এবং পিএইচপি অবজেক্টগুলি বস্তুগুলিতে অনুবাদ করে ( {})। উদাহরণ:

$a = array(
        array('foo' => 'bar'),
        array('foo' => 'baz'));
$json = json_encode($a);

আপনি দেয়:

[{"foo":"bar"},{"foo":"baz"}]

1
মাফ করবেন তবে আমি যদি want "নাম_আরে": [{"foo": "বার"}, {"foo": "বাজ"}] want চান?
মিম্মো

2
আমার পোস্ট আবার পড়ুন। আপনি যদি কোনও জেএসওএন অবজেক্টে অনুবাদ করতে চান তবে এটি পিএইচপি-তে (যেখানে কীগুলি স্ট্রিং রয়েছে) তে একটি সহযোগী অ্যারে করুন। আপনি যদি এটি কোনও JSON তালিকায় অনুবাদ করতে চান তবে এটিকে একটি সরল অ্যারে (অন্তর্ভুক্ত পূর্ণসংখ্যা কী সহ) করুন। প্রতিটি অ্যারে উপাদানের মান ঘুরেফিরে অ্যারে হতে পারে যা আপনি চান।
টিডামার্স

ধন্যবাদ এটি আমার প্রশ্নের উত্তরও দিয়েছিল।
শন ওয়ার্নিগ

আমি এটি করেছি তবে আমি var_dumb ফাংশনটি ব্যবহার করে যে প্রতিক্রিয়া পেয়েছি তা নিম্নলিখিত। আমি কীভাবে স্ট্রিং (59) থেকে মুক্তি পেতে পারি? স্ট্রিং (59) "[{" ফলাফল ":" সাফল্য "}, message" বার্তা ":" ডেটা আপডেট হয়েছে! "}]"
জেমস স্মিথ

13

পিএইচপি তে জসন তৈরি করার জন্য আপনার প্রতিবার যাওয়া উচিত সর্বোত্তম উপায় হ'ল প্রথমে এসোসিয়েটিভ অ্যারেতে রূপান্তর করা।

এর পরে কেবল ব্যবহার করে এনকোড করুন json_encode($associativeArray)। আমি মনে করি পিএইচপি তে জসন তৈরির এটি সর্বোত্তম উপায় কারণ যখনই আমরা পিএইচপিতে ফলাফল ফর্ম এসকিএল ক্যোয়ারী আনতে পারি তখন বেশিরভাগ সময় আমরা fetch_assocফাংশন ব্যবহার করে মান পেয়েছি যা একটি এসোসিয়েটিভ অ্যারেও ফেরত দেয়।

$associativeArray = array();
$associativeArray ['FirstValue'] = 'FirstValue';

... ইত্যাদি

তারপর.

json_encode($associativeArray);

3

এছাড়াও অ্যারের জন্য আপনি সংক্ষিপ্ত টিকা ব্যবহার করতে পারেন:

$arr = [
    [
        "region" => "valore",
        "price" => "valore2"
    ],
    [
        "region" => "valore",
        "price" => "valore2"
    ],
    [
        "region" => "valore",
        "price" => "valore2"
    ]
];

echo json_encode($arr);

3

নীচে @tdammers দ্বারা প্রদত্ত সমাধানের সাহায্যে আমি এটি করতে সক্ষম হয়েছি। নিম্নলিখিত লাইনটি foreach লুপের ভিতরে স্থাপন করা হবে।

$array[] = array('power' => trim("Some value"), 'time' => "time here" );

এবং তারপরে জসন এনকোড ফাংশন সহ অ্যারেটিকে এনকোড করুন

json_encode(array('newvalue'=> $array), 200)

1

কেবল এই একক লাইনটি টাইপ করলে আপনাকে একটি জসন অ্যারে দেওয়া হবে,

echo json_encode($array);

সাধারণত আপনি json_encodeকোনও আইওএস বা অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে ডেটা পড়তে ব্যবহার করেন। সুতরাং নিশ্চিত হয়ে নিন যে আপনি সঠিক জসন অ্যারে ছাড়া অন্য কোনও কিছু প্রতিধ্বনিত করছেন না।


1
$json_data = '{ "Languages:" : [ "English", "Spanish" ] }';
$lang_data = json_decode($json_data);
var_dump($lang_data);

কীভাবে আপনি পিএইচপি-তে ভাষা নোডে গতিশীলভাবে একটি নতুন ভাষা যুক্ত করবেন? ধন্যবাদ।

0
<?php 

    $username=urldecode($_POST['log_user']);

    $user="select * from tbl_registration where member_id= '".$username."' ";
    $rsuser = $obj->select($user);
    if(count($rsuser)>0)
    {
        //   (Status if 2 then its expire)    (1= use) ( 0 = not use)

        $cheknew="select name,ldate,offer_photo  from tbl_offer where status=1 ";
        $rscheknew = $obj->selectjson($cheknew);

        if(count($rscheknew)>0)
        {

             $nik=json_encode($rscheknew);
            echo "{\"status\" : \"200\" ,\"responce\" : \"201\", \"message\" : \"Get Record\",\"feed\":".str_replace("<p>","",$nik). "}";
        }
        else
        {
            $row2="No Record Found";
            $nik1=json_encode($row2);
            echo "{\"status\" : \"202\",  \"responce\" : \"604\",\"message\" : \"No Record Found \",\"feed\":".str_replace("<p>","",$nik1). "}";
        }
    }
    else
    {
        $row2="Invlid User";
        $nik1=json_encode($row2);
        echo "{\"status\" : \"404\", \"responce\" : \"602\",\"message\" : \"Invlid User \",\"feed\":".str_replace("<p>","",$nik1). "}";
    }

 ?>

0

আমি আমার কোডের জন্য ব্যবহার করার জন্য একটি অশোধিত এবং সাধারণ jsonOBJ ক্লাস তৈরি করেছি। পিএইচপি জাভাস্ক্রিপ্ট / নোড do মত json ফাংশন অন্তর্ভুক্ত না। আপনাকে আলাদাভাবে পুনরাবৃত্তি করতে হবে তবে এটি সহায়ক হতে পারে।

<?php

// define a JSON Object class
class jsonOBJ {
    private $_arr;
    private $_arrName;

    function __construct($arrName){
        $this->_arrName = $arrName;
        $this->_arr[$this->_arrName] = array();

    }

    function toArray(){return $this->_arr;}
    function toString(){return json_encode($this->_arr);}

    function push($newObjectElement){
        $this->_arr[$this->_arrName][] = $newObjectElement; // array[$key]=$val;
    }

    function add($key,$val){
        $this->_arr[$this->_arrName][] = array($key=>$val);
    }
}

// create an instance of the object
$jsonObj = new jsonOBJ("locations");

// add items using one of two methods
$jsonObj->push(json_decode("{\"location\":\"TestLoc1\"}",true)); // from a JSON String
$jsonObj->push(json_decode("{\"location\":\"TestLoc2\"}",true));

$jsonObj->add("location","TestLoc3"); // from key:val pairs

echo "<pre>" . print_r($jsonObj->toArray(),1) . "</pre>";
echo "<br />" . $jsonObj->toString();
?>

আউটপুট দেবে:

Array
(
    [locations] => Array
        (
            [0] => Array
                (
                    [location] => TestLoc1
                )

            [1] => Array
                (
                    [location] => TestLoc2
                )

            [2] => Array
                (
                    [location] => TestLoc3
                )

        )

)


{"locations":[{"location":"TestLoc1"},{"location":"TestLoc2"},{"location":"TestLoc3"}]}

পুনরাবৃত্তি করতে, একটি সাধারণ বস্তুতে রূপান্তর করুন:

$myObj = $jsonObj->toArray();

তারপর:

foreach($myObj["locations"] as $locationObj){
    echo $locationObj["location"] ."<br />";
}

আউটপুট:

টেস্টলোক 1
টেস্টলোক 2
টেস্টলোক 3

সরাসরি অ্যাক্সেস:

$location = $myObj["locations"][0]["location"];
$location = $myObj["locations"][1]["location"];

একটি ব্যবহারিক উদাহরণ:

// return a JSON Object (jsonOBJ) from the rows
    function ParseRowsAsJSONObject($arrName, $rowRS){
        $jsonArr = new jsonOBJ($arrName); // name of the json array

        $rows = mysqli_num_rows($rowRS);
        if($rows > 0){
            while($rows > 0){
                $rd = mysqli_fetch_assoc($rowRS);
                $jsonArr->push($rd);
                $rows--;
            }
            mysqli_free_result($rowRS);
        }
        return $jsonArr->toArray();
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.