2017-11-13 1 views
0

다차원 배열을 만드는 데 문제가 있습니다. 데이터베이스에서 데이터를 수신하고 있는데, 포장을 만들기 위해 API를 통해 전송 될 배열을 만들어야합니다.다차원 배열 만들기

$truckTrailer = array(
    'w' => $sirina, 
    'h' => $visina, 
    'd' => $duzina, 
    'max_wg' => '15000', 
    'id' => $kamion1 
); 

그럼 내가 이름을 일단 쿼리를

$stmt = "SELECT DISTINCT(nazivPanela) as paket FROM `paneli_pakovanja_2017` WHERE idNaloga = $idNaloga"; 

$q = $conn->query($stmt); 

$nazivPaketa = array(); 

while($r = $q -> fetch()){ 
    $nazivPaketa[] = $r['paket']; 
} 

를 만들기 위해 그 값을 사용 : 나는 트레일러에 대한 쿼리를 만들

$idNaloga = $_GET['idNaloga']; 
$duzina = $_GET['duzina']; 
$sirina = $_GET['sirina']; 
$visina = $_GET['visina']; 

먼저

먼저 내가 양식에서 값을 얻을 패킷 수를 계산할 때마다 각 패킷을 쿼리합니다. 이 쿼리에서 나는

array(
    'w' => '100', 
    'h' => '90', 
    'd' => '1350', 
    'q' => '18', 
    'vr' => '1', 
    'wg' => '0', 
    'id' => 'Paket' 
), 

보이는 각각의 패킷 배열 받아야하지만 그나마 내가 아래 쿼리에서 하나 개의 배열을 얻을,하지만 난 마지막에 7

foreach($nazivPaketa as $paket) { 

$stmt2 = "SELECT max(duzina) as duzina, visinaPaketa, sirinaPaketa, nazivPanela FROM `paneli_pakovanja_2017` WHERE idNaloga = $idNaloga AND nazivPanela = $paket"; 

$q = $conn -> query($stmt2); 

while($r=$q->fetch()) { 

    $paketi = array(
     'w' => $r['sirinaPaketa'], 
     'h' => $r['visinaPaketa'], 
     'd' => $r['duzina'], 
     'q' => '1', 
     'vr' => '1', 
     'wg' => '0', 
     'id' => $r['nazivPanela'] 
    ); 
} 
} 

을 얻어야한다 I 모양을 형태로 배열해야 내가 올바른 방법을 사용하고 몰라

$data = array( 

'bins' => array(// this array I have it is truck trailer 

       array(
         'w' => '250', 
         'h' => '360', 
         'd' => '1360', 
         'max_wg' => '15000', 
         'id' => '1' 
        ) 
      ), 

'items' => array( *// array I should get from $paketi 
       array(
         'w' => '100', 
         'h' => '90', 
         'd' => '1350', 
         'q' => '18', 
         'vr' => '1', 
         'wg' => '0', 
         'id' => 'Paket' 
        ), 
       array(
         'w' => '100', 
         'h' => '90', 
         'd' => '900', 
         'q' => '23', 
         'vr' => '1', 
         'wg' => '0', 
         'id' => 'Paket2' 
       ), 
       array(
        'w' => '100', 
        'h' => '90', 
        'd' => '400', 
        'q' => '18', 
        'vr' => '1', 
        'wg' => '0', 
        'id' => 'Paket' 
       ) 
      ), 

, 그러나 지원의 어떤 종류를 필요로

답변

1

테스트하지 않았지만 아마도 다음과 같이 시도해 볼 수 있습니다. 변수 $paketi 루프의 각 반복에 덮어 쓰는하지만 당신은 모든 쿼리에 대한 기록이 때문에 외부 루프 전에 배열을 선언하고 다른 배열이 추가 얻으려면 그것을

$data=array(); 

foreach($nazivPaketa as $paket) { 

    $stmt2 = "SELECT max(duzina) as duzina, visinaPaketa, sirinaPaketa, nazivPanela 
     FROM `paneli_pakovanja_2017` 
     WHERE idNaloga = $idNaloga AND nazivPanela = $paket"; 

    $q = $conn->query($stmt2); 

    $paketi=array(); 

    while($r=$q->fetch()) { 
     $paketi[] = array(
      'w' => $r['sirinaPaketa'], 
      'h' => $r['visinaPaketa'], 
      'd' => $r['duzina'], 
      'q' => '1', 
      'vr' => '1', 
      'wg' => '0', 
      'id' => $r['nazivPanela'] 
     ); 
    } 
    $data[]=$paketi; 
} 

echo '<pre>',print_r($data,1),'</div>'; 

에 내부 루프에서 내용을 추가의 저장해야 시도해 볼 수 있습니다 :

$data['bins']=$truckTrailer; /* assuming `$truckTrailer` is an array */ 
0

루프의 $ packeti 변수를 덮어 쓰고 있습니다 ... 대신 값을 배열에 추가해야합니다.

$q = $conn -> query($stmt2); 
$paketi = array(); 
while($r=$q->fetch()) { 

    $paketi[] = array(
     'w' => $r['sirinaPaketa'], 
     'h' => $r['visinaPaketa'], 
     'd' => $r['duzina'], 
     'q' => '1', 
     'vr' => '1', 
     'wg' => '0', 
     'id' => $r['nazivPanela'] 
    ); 
} 
} 

$ packeti []는 패키지 정보가 완전히 교체되지 않고 어레이에 추가되도록합니다.