簡體   English   中英

通過php / json從數據庫獲取數據

[英]get data from database via php/json

如何獲取這些變量並將其存儲在自己的變量中? 我想要獲取它們以便在保存過程中更新其中的一些。 我知道可以通過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獲取它們? 它們存儲在數據庫中。

您可以使用變量變量獲取從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 

Rajdeep Paul的答案有兩個補充:

  1. 如果您輸入的是JSON字符串而不是PHP數組,則可以將其解碼為PHP對象。 然后您將引用“內容”對象,如下所示:

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

    代替

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

  2. 將數組分配給變量變量:無法將值直接分配給變量變量。 但是,如果變量是數組,則可以將其項值分配給臨時數組,然后將此臨時數組分配給變量變量。

顯示此示例的示例-具有從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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM