将JSON数组添加到MYSQL

时间:2012-07-11 20:44:14

标签: mysql arrays json

我正在尝试通过数组名称获取特定值:

<?php
$json = json_decode($_POST['json'], true);

print_r($json);
?>

我得到了这个varray:

Array
(
    [0] => Array
        (
            [name] => pav
            [value] => g
        )

    [1] => Array
        (
            [name] => ppav
            [value] => f
        )

    [2] => Array
        (
            [name] => kiekis
            [value] => g
        )

    [3] => Array
        (
            [name] => kaina
            [value] => g
        )

    [4] => Array
        (
            [name] => ppav
            [value] => f
        )

    [5] => Array
        (
            [name] => kiekis
            [value] => g
        )

    [6] => Array
        (
            [name] => kaina
            [value] => f
        )

    [7] => Array
        (
            [name] => ppav
            [value] => g
        )

)

尝试使用foreach函数,但无法获得特定值:

foreach ($json as $key => $value) {
    echo "name".$key['name']." value".$value['value']."<br />";
}

它打印所有数组值:

name value<br />name valueasd<br />name valueasd<br />name values<br />name values<br />name values<br />name values<br />name valuea<br />name valueasd<br />name valued<br />

但我无法通过名称选择特定值来添加到nysql。怎么做?

2 个答案:

答案 0 :(得分:2)

以下是经过测试的代码

<?php
    $json_array = array(
                    array('name'=>'pav', 'value'=>'g'),
                    array('name'=>'ppav', 'value'=>'f'),
                    array('name'=>'kiekis', 'value'=>'g'),
                    array('name'=>'ppav', 'value'=>'f')
                    );

    echo "<pre>";
    print_r($json_array);
    echo "</pre>";

    $assoc_array = array();

    for($i = 0; $i < sizeof($json_array); $i++)
    {
        $key = $json_array[$i]['name'];
        $assoc_array[$key] = $json_array[$i]['value'];
    }

    echo "<pre>";
    print_r($assoc_array);
    echo "</pre>";

    echo "assoc_array['pav'] = ".$assoc_array['pav'];
?>

下面给出了代码的输出,您可以看到与您的数组完全相同的数组被转换为关联数组,因为您的数组具有重复的名称,例如,有一个问题。 ppav或kiekis所以只有1个kiekis或ppav索引具有最新值。

enter image description here

答案 1 :(得分:1)

你必须重新创建数组

$json_array = json_decode($_POST['json'], true);
$assoc_array = array();

for($i = 0; $i < sizeof($json_array); $i++)
{
     $key = $json_array[$i]['name'];
     $assoc_array[$key] = $json_array[$i]['value'];
}

之后你会得到$ assoc_array,你可以按键访问它的元素。