2013-05-24 2 views
0

나는 한 달에 한개의 CSV 엔트리, 즉 answer1 인 db 컬럼이 jan,2008이고 열이 answer2 인 앱이 feb,2013 인 어플리케이션을 가지고있다. html로 특정 월 (jan)을 사용하고 싶지만 마지막 배열 데이터 만 제공합니다.foreach 루프 외부에서 PHP 다차원 배열 호출하기

<?php 
foreach ($row as $colName => $colValue) 
    { 
    if($colName === answer1 || $colName === answer2) 
    {    
    //break apart date data 
    $myArray = explode(',', $colValue); 
    echo '<div id=" ' .$colName . $myArray[0] . ' ">test</div> ';//this works 
     }; 
    }; 

?>

내가 나중에 문서의 다른 PHP 블록에서 이런 일을하고 싶습니다.

<?php echo '<div id=" '.$colName[answer2] . $myArray[0] . ' ">test</div> ';?> 
+0

는 경우 –

+0

문자열에'break' 문을 추가해야 작은 따옴표 나 큰 따옴표로 묶어야합니다. answer1과 answer2는 무엇입니까? – BLaZuRE

+0

나는 탈옥하고 싶지 않다. 나중에 배열 정보를 저장하여 나중에 호출 할 수 있기를 바란다. –

답변

0

아마도 훨씬 쉽습니다. 우리는 PHP에 도달하기 전에 MySQL의 원래 열에서 폭발하고 있습니다 (또는 두 개의 부분 문자열을 가져옵니다). 그럼 당신은 그러나 사용할 수 있습니다 당신이 원하는 :

$query = "SELECT SUBSTRING_INDEX(answer1,',',1) as a1_month, 
SUBSTRING_INDEX(answer1,',',-1) as a1_year, 
SUBSTRING_INDEX(answer2,',',1) as a2_month, 
SUBSTRING_INDEX(answer2,',',-1) as a2_year from my_table"; 
$result = mysqli_query($query); 


$answers = array(); 
$x = 0; 
while ($row = mysqli_fetch_array($result)){ 

    $answers[$x]['answer1_year'] = $row['a1_year']; 
    $answers[$x]['answer1_month'] = $row['a1_month']; 
    $answers[$x]['answer2_year'] = $row['a2_year']; 
    $answers[$x]['answer2_month'] = $row['a2_month']; 
$x++; 
} 

print_r($answers); 

어떤 이유로 여전히 연결된 문자열을 원하는 경우에 당신은이 작업을 수행 할 수 있습니다

$answer1 = $answers[0]['answer1_month'].','.$answers[0]['answer1_year']; 
$answer2 = $answers[0]['answer2_month'].','.$answers[0]['answer2_year']; 
+0

흥미로운 솔루션, 나는 그것을 좋아한다. 나는 거의 100 개의 컬럼을 가지고있다. ... –

+0

'array()'에서'foreach()'로 질의를 생성 할 수있다; 그들이 순차적이라면'for()'를 할 수 있습니다; –

+0

간단한 예를 들려 줄 수 있습니까? 감사합니다. –