【发布时间】:2016-12-21 05:43:39
【问题描述】:
抱歉,如果此问题中的代码过多。数组占用了大量空间,我试图尽可能彻底地解释这一点。我正在尝试将用户输入的所有地址保存到一个多维数组中,这样我就可以轻松地循环遍历它们。我试图在理论上实现的最终结果如下所示:
array(3) {[0]=>
array(4) {
["street_address"]=>
string(1) "a"
["city_name"]=>
string(1) "a"
["zip"]=>
string(1) "a"
["country_select"]=>
string(2) "LT"
}
[1]=>
array(4) {
["street_address"]=>
string(1) "b"
["city_name"]=>
string(1) "b"
["zip"]=>
string(1) "b"
["country_select"]=>
string(2) "LT"
}
[2]=>
array(4) {
["street_address"]=>
string(1) "c"
["city_name"]=>
string(1) "c"
["zip"]=>
string(1) "c"
["country_select"]=>
string(2) "LT"
}}
我可以用简单的代码轻松复制它
$adresai = array();
$adresas =array(
'street_address' => 'a',
'city_name' => 'a',
'zip' => 'a',
'country_select' => 'a');
array_push($adresai, $adresas);
array_push($adresai, $adresas);
array_push($adresai, $adresas);
但是当我试图在 wordpress 中应用这个逻辑时,我得到了非常奇怪的布局,基本上是一团糟。
array(1) {
[0]=>
array(2) {
[0]=>
array(2) {
[0]=>
array(4) {
["street_address"]=>
string(1) "a"
["city_name"]=>
string(1) "a"
["zip"]=>
string(1) "a"
["country_select"]=>
string(2) "LT"
}
[1]=>
array(4) {
["street_address"]=>
string(1) "b"
["city_name"]=>
string(1) "b"
["zip"]=>
string(1) "b"
["country_select"]=>
string(2) "LT"
}
}
[1]=>
array(4) {
["street_address"]=>
string(1) "c"
["city_name"]=>
string(1) "c"
["zip"]=>
string(1) "c"
["country_select"]=>
string(2) "LT"
}}}
我的 sn-p 用于保存用户输入的地址并与以前的地址合并:
$adresai =get_user_meta(get_current_user_id(), 'stakliu_adresai');
$adresas =array(
'street_address' => $_POST['snr_gatve'],
'city_name' => $_POST['snr_miestas'],
'zip' => $_POST['snr_pastokodas'],
'country_select' => $_POST['snr_salis']);
if ($adresai == array()){
$adresai = $adresas;
}
else{
array_push($adresai, $adresas);
}
update_user_meta(get_current_user_id(),'stakliu_adresai', $adresai );
我做错了什么?
【问题讨论】:
-
所以这只发生在 wordpress 中?
-
请注意文档中的这一点:如果未指定 $key 或 $single 为 false,则将是一个数组。如果 $single 为真,将是 meta_value 字段的值。 所以,尝试更改
get_user_meta,如下所示:get_user_meta(get_current_user_id(), 'stakliu_adresai', true); -
@naththedeveloper,谢谢!我总是忘记这一点。
标签: php arrays wordpress multidimensional-array