通过php / json

时间:2016-01-11 12:49:34

标签: php jquery mysql

如何获取这些变量并存储在我自己的变量中?我想得到它们,以便在保存过程中更新其中的一些。我知道这可以通过jquery / ajax或php发生..但我怎么能正确地做到这一点?我想要举例[x]并将其存储在我的变量A中。

      Array
    (
        [sliders] => Array
            (
                [c1] => Array
                    (
                        [content] => Array
                            (
                                [0] => Array
                                    (
//I WANT THAT VARIABLES: FROM title to additional style//
                                        [title] => 1
                                        [content_type] => image_content
                                        [content_url] => http://url.com
                                        [original_x] => -4px
                                        [original_y] => -27px
                                        [x] => -71.5
                                        [y] => -59
                                        [w] => 450
                                        [h] => 265
                                        [w_original] => 362
                                        [h_original] => 213
                                        [angle] => 0
                                        [opacity] => 100
                                        [order_position] => 10001
                                        [link_url] => 
                                        [matrix] => matrix(0.701111, 0, 0, 0.758491, 0, 0)
                                        [scaleX] => 0.70111111111111
                                        [scaleY] => 0.75849056603774
                                        [text_style] => 
                                        [additional_style] => Array
                                            (
                                            )

                                        [animation_fx] => Array
                                            (
                                                [fx_in] => 
                                                [fx_out] => 
                                            )

                                        [animation_times] => Array
                                            (
                                                [in_start] => 0
                                                [in_stop] => 1000
                                                [out_start] => 4000
                                                [out_stop] => 5000
                                            )

                                    )

                            )

                        [duration] => 5
                        [overlap] => 0
                        [order_position] => 1
                        [min_z] => 10001
                        [max_z] => 10001
                    )

            )

        [width] => 450
        [height] => 300
        [back_color] => #ffffff
        [back_color_xyz] => Array
            (
                [x] => 8
                [y] => 50
                [z] => 0
            )

        [link_url] => 
        [title] => 
        [thumbnail] => 
        [id] => 0
    )

我怎样才能通过php获取它们?它们存储在DB中。

2 个答案:

答案 0 :(得分:0)

您可以使用变量来获取值,从titleadditional_style数组,并将它们存储在与数组键相同的变量中。

以下是参考资料:

所以你的代码应该是这样的:

// suppose $arr is your original array

foreach($arr['sliders']['c1']['content'][0] as $key => $value){
    $$key = $value;  // variable variables
    if($key == "additional_style"){
        break;
    }
}

echo "title: " . $title . "<br />";  // title
echo "content_type: " . $content_type . "<br />";  // content_type
echo "content_url: " . $content_url . "<br />";  // content_url
echo "original_x: " . $original_x . "<br />";  // original_x
echo "original_y: " . $original_y . "<br />";  // original_y
echo "x: " . $x . "<br />";  // x
echo "y: " . $y . "<br />";  // y
echo "w: " . $w . "<br />";  // w
echo "h: " . $h . "<br />";  // h
echo "w_original: " . $w_original . "<br />";  // w_original
echo "h_original: " . $h_original . "<br />";  // h_original
echo "angle: " . $angle . "<br />";  // angle
echo "opacity: " . $opacity . "<br />";  // opacity
echo "order_position: " . $order_position . "<br />";  // order_position
echo "link_url: " . $link_url . "<br />";  // link_url
echo "matrix: " . $matrix . "<br />";  // matrix
echo "scaleX: " . $scaleX . "<br />";  // scaleX
echo "scaleY: " . $scaleY . "<br />";  // scaleY
echo "text_style: " . $text_style . "<br />";  // text_style
echo "additional_style array: "; var_dump($additional_style);  // additional_style array

输出:

title: 1
content_type: image_content
content_url: http://url.com
original_x: -4px
original_y: -27px
x: -71.5
y: -59
w: 450
h: 265
w_original: 362
h_original: 213
angle: 0
opacity: 100
order_position: 10001
link_url:
matrix: matrix(0.701111, 0, 0, 0.758491, 0, 0)
scaleX: 0.70111111111111
scaleY: 0.75849056603774
text_style:
additional_style array:

array (size=0)
  empty 

答案 1 :(得分:0)

Rajdeep Paul回答的两个补充:

  1. 如果您的输入是JSON字符串,而不是PHP数组,则可以使用PHP对象对其进行解码。然后你会参考&#34;内容&#34;像这样的对象:

    $obj->sliders->c1->content[0]

    而不是

    $arr['sliders']['c1']['content'][0]

  2. 将数组赋值给变量变量: 无法直接将值赋给变量变量。 但是,如果变量是数组,则可以将其项值分配给a 临时数组,然后将此临时数组分配给变量变量。

  3. 显示此示例 - 使用从JSON字符串解码的PHP对象:

    $php_object = json_decode($json);
    foreach($php_object->sliders->c1->content[0] as $key => $value){
        if (is_array($value)) {
            $tmp_array = array();
            foreach($value as $akey => $avalue) {
                $tmp_array[] = $avalue;
            }
            $$key = $tmp_array;
        } else {
            $$key = $value;  // variable variables
        }
    }
    echo "x: " . $x . "<br />";  // x
    echo "y: " . $y . "<br />";  // y
    echo 'additional_style:<br />';  // additional_style
    foreach($additional_style as $style) echo '&nbsp;&nbsp;&nbsp;' . $style . "<br />";
    

    输出:

    x: -71.5
    y: -59
    additional_style:
       style_def_1
       style_def_2
       style_def_3