После катания на американских горках "я" близок к завершению сценария, над которым я работал.
У меня есть многомерный массив, хранящийся в $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);
}