[php] 연관 배열에 항목 추가

//go through each question
foreach($file_data as $value) {
   //separate the string by pipes and place in variables
   list($category, $question) = explode('|', $value);

   //place in assoc array
   $data = array($category => $question);
   print_r($data);

}

이것은 데이터의 가치를 대체하기 때문에 작동하지 않습니다. 그래도 각 루프마다 연관 값을 추가하려면 어떻게해야합니까? $file_data동적 크기를 갖는 데이터의 배열입니다.



답변

나는 당신이 원하는 것 같아요 $data[$category] = $question;

또는 범주를 질문 배열에 매핑하는 배열을 원하는 경우 :

$data = array();
foreach($file_data as $value) {
    list($category, $question) = explode('|', $value, 2);

    if(!isset($data[$category])) {
        $data[$category] = array();
    }
    $data[$category][] = $question;
}
print_r($data);


답변

간단히 할 수 있습니다.

$data += array($category => $question);

PHP 5.4 이상에서 실행중인 경우

$data += [$category => $question];


답변

for 루프 이전 :

$data = array();

그런 다음 루프에서 :

$data[] = array($catagory => $question);


답변

나는 이것이 오래된 질문이라는 것을 알고 있지만 다음을 사용할 수 있습니다.

array_push($data, array($category => $question));

이것은 array당신의 현재의 끝에 밀어 넣을 것 array입니다. 또는 배열 끝에 단일 값을 추가하려는 경우 더 이상 배열이 아닌 다음을 사용할 수 있습니다.

array_push($data,$question);


답변

2d 연관 배열에 추가해야하는 사람이라면 위에 주어진 대답을 사용하고 다음과 같은 코드를 사용할 수도 있습니다.

 $data[$category]["test"] = $question

그런 다음이를 호출 할 수 있습니다 (결과를 테스트하려면 다음을 수행하십시오.)

echo $data[$category]["test"];

$ question을 인쇄해야합니다.


답변