我有一个嵌套数组,想要根据原始数组中的某个值处理成另一个嵌套数组。
这是我的原始数组,它是嵌套的,因为后面我会引入其他值。
$dataArray = array (
0 => array(
"adgroupid" => "5426058726"
),
1 => array(
"adgroupid" => "5426058086"
),
2 => array(
"adgroupid" => "5426058086"
),
3 => array(
"adgroupid" => "5426058087"
),
4 => array(
"adgroupid" => "5426058087"
),
5 => array(
"adgroupid" => "5426058088"
),
6 => array(
"adgroupid" => "5426058089"
),
7 => array(
"adgroupid" => "5426058089"
),
8 => array(
"adgroupid" => "5426058090"
这是我目前得到的结果,注意数组1和2中的字符串应该嵌套在同一个数组中,就像3和5中一样。
array (size=10)
0 =>
array (size=1)
0 => string '5426058726' (length=10)
1 =>
array (size=1)
0 => string '5426058086' (length=10)
2 =>
array (size=1)
0 => string '5426058086' (length=10)
3 =>
array (size=2)
0 => string '5426058087' (length=10)
1 => string '5426058087' (length=10)
4 =>
array (size=1)
0 => string '5426058088' (length=10)
5 =>
array (size=2)
0 => string '5426058089' (length=10)
1 => string '5426058089' (length=10)
6 =>
array (size=4)
0 => string '5426058090' (length=10)
这是我的代码,我需要使用if语句,因为在后面的阶段我想引入另一个参数:
$newdataArray = array();
$j = 0; // Set value of working variables
$adgroupidcheck = 0;
foreach ($dataArray as $value) { // Loop through the array
if( $adgroupidcheck != $value['adgroupid'] ) { // Check $adgroupidcheck
$newdataArray[][] = $value['adgroupid']; // Create a new nested array
$j ++; // increment $j
} else {
$newdataArray[$j][] = $value['adgroupid']; // Add to the current array
}
$adgroupidcheck = $value['adgroupid']; // Set $adgroupidcheck
}
我的问题是,我的代码只有在数组检查循环的第一个实例未起作用后才能正常运行。 任何帮助都将不胜感激。 谢谢。
foreach($dataArray as $item) $new[$item['adgroupid']] []= $item['adgroupid'];
这个语句可以实现相应的功能,但是你能否解释一下为什么需要这样一个数组(n次相同的字符串)? - georg