我有一个课程的部分和单元的数组,部分是非数字的,单元是从wordpress生成的数字id。
包含部分和单元的数组类似于:-(a,1,2,3,b,4,5,6,7,c,8,9,10)
我想把它做成这样的$combine_array= ( a=> '1,2,3', b=> '4,5,6,7' c=> '8,9,10' )
首先,下次试着更清楚地了解你在问什么——现在没有人知道你组合这些数组的标准是什么。
从我一开始从你的评论中收集到的信息来看,你有一个像$array = array( 'a', 1, 2, 3, 'b', 4, 5, 6, 7, 'c', 8, 9, 10 );
这样的数组,那么你应该把它组合成多维数组,其中键将是数组$array
中的非数字值,值将是数字键,对吗?
使用foreach
循环可以非常简单地实现它。首先创建一个新数组,然后循环遍历$array
中的所有值,检查值是否为数字-如果不是数字,请将其保存到某个辅助变量中,并将所有数值添加到该键中。
$helper = false;
$combined = array();
$array = array( 'a', 1, 2, 3, 'b', 4, 5, 6, 7, 'c', 8, 9, 10 );
foreach($array as $value){
if(is_string( $value )){
$helper = $value;
} else {
$combined[ $helper ][] = $value;
}
}
var_dump( $combined );
我已经在另一个数组$b
中保留了所有不是字符串的元素,现在告诉我在这种情况下,你想把这些元素存储在哪里??
$helper = false;
$combo = array();
$array = array( 34,'a', 1, 2, 3, 'b', 4, 5, 6, 7, 'c', 8, 9, 10 );
$b = array();
foreach($array as $key=>$value){
//if(!is_int( $value )){ // if there is any other element beside string and you want to make them key
if(is_string( $value )){
$helper = $value;
} else {
if($helper){
$combo [ $helper ][] = $value;
} else {
$b[] = $value;
}
}
}
var_dump( $combo );
var_dump($b);
输出
array (size=3)
'a' =>
array (size=3)
0 => int 1
1 => int 2
2 => int 3
'b' =>
array (size=4)
0 => int 4
1 => int 5
2 => int 6
3 => int 7
'c' =>
array (size=3)
0 => int 8
1 => int 9
2 => int 10
array (size=1)
0 => int 34