PHP访问数组值的正确方法是什么

时间:2014-06-25 16:47:28

标签: php jquery arrays post

这似乎是一个新手问题,但我在这里遇到了困难。

我通过jquery发布的表单中有一个post值数组,$ _POST [“extra”]数组通过.serialize()格式化。

string(1) "0"
["tax"]=>string(1) "0"
["taxRate"]=>string(1) "0"
["itemCount"]=>string(1) "3"
["item_name_1"]=>string(17) "Detox Diet 1234®"
["item_quantity_1"]=>string(1) "2"
["item_price_1"]=>string(5) "32.95"
["item_options_1"]=>string(56) "thumb: /cb2014-II/img/products/DetoxDiet1234.jpg, pid: 3"
["item_name_2"]=>string(12) "Fiber 1234®"
["item_quantity_2"]=>string(1) "1"
["item_price_2"]=>string(2) "55"
["item_options_2"]=>string(52) "thumb: /cb2014-II/img/products/Fiber1234.jpg, pid: 4"
["item_name_3"]=>string(10) "eAc 1234®"
["item_quantity_3"]=>string(1) "2"
["item_price_3"]=>string(5) "42.95"
["item_options_3"]=>string(40) "pid: 27, thumb: img/products/eAC1234.jpg"
["extra"]=>string(465) "x_first_name=value&x_last_name=value&phone=xxx-xxx-xxxx&fax=&email=first.last%40domain.com&company=company&ccnumber=xxxxxxxxxxx&expMo=1&expYr=2016&cvv=&address1=address one&address2=&city=city&state=UT&zip=xxxxx&country=USA&addressee_firstName=&addressee_lastName=&shipping_address1=&shipping_address2=&shipping_city=&shipping_state=&shipping_zip=&shipping_country=&checkoutConfirm=1&x_amount=xx.xx&num_units=3&x_test_request=yes"
["testItem"]=>string(9) "test Item"
["check_out"]=>string(3) "Yes"
}

要访问“extra”内的已发布值,请使用正确的语法$newVar = $_POST['extra']['num_units']

因为打印到我的屏幕上的值似乎是第一个“额外”字段名称的第一个字符,所以我没有使用循环来获取仅在清理后尝试在本地设置的值。

我的解决方案:     parse_str($extra,$extraFields); 不,我可以访问$extraFields['x_first_name']

等值

2 个答案:

答案 0 :(得分:1)

请参阅此http://www.php.net//manual/en/function.parse-str.php

$extras = array();
parse_str($_POST['extra'], $extras);
//now $extras holds all the info in a readable format

答案 1 :(得分:0)

看起来你的'额外'字段是一个url编码的查询字符串。在将内部属性作为数据(而不是字符串)访问之前,您需要解码该字符串:

parse_str(urldecode($_POST['extra']), $extras);

现在您应该可以访问$extra['x_last_name']