目前,我有一个2d数组,基本如下所示:
$oriArr = array(
[0]=>array(
'1'=>'a',
'2'=>'b',
'3-1'=>'c',
'4-1'=>'d',
'3-2'=>'c1',
'4-2'=>'d1'
),
[1]=>array(
'1'=>'a',
'2'=>'b',
'3-1'=>'c',
'4-1'=>'d',
'3-2'=>'c1',
'4-2'=>'d1',
'3-3'=>'c2',
'4-3'=>'d2'
),
);我希望通过添加如下新元素将数组拆分为3d数组:
$resArr= array(
[0]=>array(
[1]=>'a',
[2]=>'b',
['items']=>array(
[1]=>array(
'3-'=>'c',
'4-'=>'d',
),
[2]=>array(
'3-'=>'c1',
'4-'=>'d1',
)
),
),
[0]=>array(
[1]=>'a',
[2]=>'b',
['items']=>array(
[1]=>array(
'3-'=>'c',
'4-'=>'d',
),
[2]=>array(
'3-'=>'c1',
'4-'=>'d1',
),
[3]=>array(
'3-'=>'c2',
'4-'=>'d2',
)
),
),
);我试图用'-‘分割所有的键,并将它们添加到另一个数组中,但是我不知道如何添加一个名为'items’的新元素并将值插入其中。
foreach($oriArr as $lines){
foreach($lines as $keys){
$keyArr= array();
if (strpos($keys, '-') !== false) {
$keyArr[] = $keys;
}
}
} 有什么方法可以分割我的原始数组吗?任何答案都将不胜感激!
发布于 2017-09-13 02:17:17
你必须这样做:-
$final_array = array();
foreach($oriArr as $key=>$oriAr){
$items = array();
foreach($oriAr as $k=>$oriA){
$exploded_key = explode('-',$k);
if(count($exploded_key) ==2){
$items['items'][$exploded_key[1]][$exploded_key[0].'-'] = $oriA;
}else{
$items[$k]=$oriA;
}
}
$final_array[$key] = $items;
}
print_r($final_array);https://stackoverflow.com/questions/46187632
复制相似问题