您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP数组转换

2024/2/26 23:59:02发布29次查看
源数组:
$attributes = array( 'users' => array( 'name' => 'name', ), 'address' => 'address', 'tags' => array( 0 => array( 'key' => 'key', 'value' => 'value', ), 1 => array( 'key' => 'key', ), 2 => array( ) ),);

希望转换为如下数组:
$result = array( 'users_name' => 'name', 'address' => 'address', 'tags_0_key' => 'key', 'tags_0_value' => 'value', 'tags_1_key' => 'key', // 'tags_2' => '',);

递归方式尝试了半天,依然没有解决,如何转换呢?
回复内容: 源数组:
$attributes = array( 'users' => array( 'name' => 'name', ), 'address' => 'address', 'tags' => array( 0 => array( 'key' => 'key', 'value' => 'value', ), 1 => array( 'key' => 'key', ), 2 => array( ) ),);

希望转换为如下数组:
$result = array( 'users_name' => 'name', 'address' => 'address', 'tags_0_key' => 'key', 'tags_0_value' => 'value', 'tags_1_key' => 'key', // 'tags_2' => '',);

递归方式尝试了半天,依然没有解决,如何转换呢?
如果那个空数组也要转换的话自己再分个类就好啦。
$val ) { $key = array_merge( $prefix, array($key) ); if( is_array($val) ) $res = array_merge( $res, transfer( $val, $key, $glue ) ); else $res[ implode($glue, $key) ] = $val; } return $res;}$attributes = array( 'users' => array( 'name' => 'name', ), 'address' => 'address', 'tags' => array( 0 => array( 'key' => 'key', 'value' => 'value', ), 1 => array( 'key' => 'key', ), 2 => array( ) ),);var_dump( transfer( $attributes ) );
function t($parent_key, $parent_array, &$data) { foreach ($parent_array as $k => $v) { if (is_array($v)) { t(${parent_key}_${k}, $v, $data); } else { $data[trim(${parent_key}_${k}, '_')] = $v; } }}$data = array();$attributes = array( 'users' => array( 'name' => 'name', ), 'address' => 'address', 'tags' => array( 0 => array( 'key' => 'key', 'value' => 'value', ), 1 => array( 'key' => 'key', ), 2 => array( ) ),);t('', $attributes, $data);print_r($data);
function deal($array, $prekey){ $res = array(); foreach ($array as $key => $val) { if(is_array($val)){ $tmp = deal($val, $prekey.$key._); $res = array_merge($tmp, $res); }else{ $res[$prekey.$key] = $val; } } return $res;}print_r(deal($attributes, ''));
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product