инициализация для массива массивов в PHP - PullRequest
0 голосов
/ 20 июля 2011

Я хочу динамически создавать массивы массивов, и я понятия не имею, как инициализировать мои массивы ...

Вот код:

$resT= array();
$resR= array();
foreach ($cursor as $obj) {
   if ($obj == NULL) continue;
   $c="XX";
   if (test1)         $c=$obj['GC'];
   array_push($resT[$c],$obj['AT']);
   array_push($resR[$c],$obj['AR']);
}

Я получил это: array_push () ожидает, что параметр 1 будет массивом

Спасибо,

Амир.

Ответы [ 4 ]

2 голосов
/ 20 июля 2011
$resT= array();
$resR= array();
foreach ($cursor as $obj) {
   if ($obj == NULL) continue;
   $c="XX";
   if (test1)         $c=$obj['GC'];
    if(!isset($resT[$c]))
      $resT[$c] = array();
    if(!isset($resR[$c]))
      $resR[$c] = array();
   array_push($resT[$c],$obj['AT']);
   array_push($resR[$c],$obj['AR']);
}
1 голос
/ 20 июля 2011

Вам даже не нужно использовать array_push.

Вы можете использовать сокращенную запись

$resT= array();
$resR= array();
foreach ($cursor as $obj) {
   if ($obj == NULL) continue;
   $c="XX";
   if (test1)         $c=$obj['GC'];
   $resT[$c] = array();
   $resT[$c][] = $obj['AT'];
   $resR[$c] = array();
   $resR[$c][] = $obj['AR'];
}
0 голосов
/ 20 июля 2011
$resT= array();
foreach ($cursor as $obj) {
  if (!is_null($obj)) {
    $c = $test1 ? $obj['GC'] : "XX";
    if (!array_key_exists($c, $resT)) $resT[$c] = array();
    $resT[$c][] = $obj['AT'];
  }
}
$resR = $resT;
0 голосов
/ 20 июля 2011

Я понятия не имею, что вы пытаетесь выполнить, но это должно разрешить ваше уведомление PHP как минимум:

$resT= array();
$resR= array();
foreach ($cursor as $obj) {
   if ($obj == NULL) continue;
   $c="XX";
   if (test1)         $c=$obj['GC'];

   if(!is_array($resT[$c])){
      $resT[$c] = array();
   }

   if(!is_array($resR[$c])){
      $resR[$c] = array();
   }

   array_push($resT[$c],$obj['AT']);
   array_push($resR[$c],$obj['AR']);
}
...