След разходка с влакче в увеселителен парк съм „толкова“ близо до финализиране на сценарий, върху който работя.
Имам многоизмерен масив, съхранен в $newarray
както е показано по-долу. Създадох този масив сам, така че кодът за изграждането му може да бъде променен, ако е необходимо. Но след създаването аз преминавам през него, избирайки стойностите, които искам. Създавам нов масив за всеки ключ в горния масив (3 в този случай, 111, 222 и 333) и попълвам всеки с куп обекти с данни от следващия ключ на масива надолу заедно с някои други данни.
Но това, от което се нуждая в случая по-долу, е да генерирам всеки от 3-те масива (111, 222, 333) два пъти, веднъж, когато крайната стойност на масива е = 0 ($the_action) и веднъж, когато е = '1'. Където е = 1, отпечатайте го, другаде, където е = 0, направете нещо друго.
Също така мисля, че начинът, по който преминавам през масиви с една стойност в него, вероятно не е много ефективен и същото важи и за използването на имена на ключове като стойности.
Благодарен за всяка помощ.
Array
(
[111] => Array
(
[1234] => Array
(
[100000] => Array
(
[20000] => 0
)
)
[1244] => Array
(
[100001] => Array
(
[20001] => 1
)
)
[1255] => Array
(
[100002] => Array
(
[20002] => 1
)
)
)
[222] => Array
(
[1233] => Array
(
[100013] => Array
(
[20013] => 0
)
)
[1241] => Array
(
[100014] => Array
(
[20014] => 1
)
)
)
[333] => Array
(
[15633] => Array
(
[100026] => Array
(
[20026] => 0
)
)
[12144] => Array
(
[100028] => Array
(
[20028] => 0
)
)
)
)
Код за изграждане на $newarray ($stack идва от CSV с 5 колони):
$newarray = array();
foreach($stack as $val){
$lineid = $val[0]; $segmentid = $val[1]; $action = $val[2]; $recency = $val[3]; $frequency = $val[4];
$newarray[$lineid][$segmentid][$recency][$frequency] = $action;
}
Код за преминаване през масив:
foreach($newarray as $key => $value) {
$target_pixels = array();
$owner_id = $key;
foreach($value as $key2 => $value2){
$target_pixel = new stdClass;
$target_pixel->conversion_id = $key2;
$target_pixel->negated = false;
foreach($value2 as $key3 => $value3){
$target_pixel->seconds_since_conversion = $key3 * 24 * 60 * 60;
foreach($value3 as $key4 => $value4){
$target_pixel->frequency_min = $key4;
$the_action = $value4;
}
}
$target_pixels[] = $target_pixel;
}
print_r($target_pixels);
}
$array = array($lineid=>array($segmentid, $recency, $frequency));
. - person Aether   schedule 08.06.2011