2016-08-31 3 views
0

제가PHP에서 foreach 루프를 사용하여 다차원 배열을 만드는 방법은 무엇입니까?

배열
$fname = $_POST['first_name']; 
$lname = $_POST['last_name']; 
$job = $_POST['job']; 
$desc = $_POST['desc']; 
$photo = $_POST['image_url']; 

$memberdata = Array(
      'first_name' => $fname, 
      'last_name' => $lname, 
      'job' => $job, 
      'desc' => $desc, 
      'image_url' => $photo 
     ); 

하고 아래와 같이 출력이 배열 반향에서 폼 값을 취할 때. 목표를 달성하기 위해 코드를 어떻게 수정해야합니까? 내가 원하는 결과를 얻는 다른 방법이 있습니까? 회원 양식은 jquery를 사용하여 동적으로 생성됩니다. 그리고 아래에서 언급 한 구성원 vise 배열을 가져오고 싶습니다.

Array 
(
    [first_name] => Array 
     (
      [0] => Member1 
      [1] => Member2 
      [2] => Member3 
     ) 

    [last_name] => Array 
     (
      [0] => Member1 
      [1] => Member2 
      [2] => Member3 
     ) 

    [job] => Array 
     (
      [0] => President 
      [1] => MD 
      [2] => CEO 
     ) 

    [desc] => Array 
     (
      [0] => President of 
      [1] => MD of 
      [2] => CEO of 
     ) 

    [image_url] => Array 
     (
      [0] => 
      [1] => 
      [2] => 
     ) 

) 

위의 어레이에서 특정 어레이를 만드는 방법은 무엇입니까? 목표를 달성하기 위해 코드를 어떻게 수정해야합니까? 이것이 내가 원하는 것입니다.

$result = array(); 
foreach($members as $member) { 
    $result['firstname'][] = $member['firstname']; 
    $result['last_name'][] = $member['last_name']; 
    //etc 
} 

그리고는 다음과 같이해야한다 :

Array 
(
    [0] => Array 
    (
     [first_name] => Member1 
     [last_name] => Member1 
     [job] => President 
     [desc] => President of 
     [image_url] => 
    ) 

    [1] => Array 
    (
     [first_name] => Member2 
     [last_name] => Member2 
     [job] => MD 
     [desc] => MD of 
     [image_url] => 
    ) 

    [2] => Array 
    (
     [first_name] => Member3 
     [last_name] => Member3 
     [job] => CEO 
     [desc] => CEO of 
     [image_url] => 
    ) 
) 
+1

은'foreach' 루프 PHP 코드 – Tumtum

+1

를 추가하면이 문제를 해결하려 않았다 어떻게 작동하지 않았다하세요? –

답변

3

내 생각 엔 당신의 foreach 루프는 다음과 같습니다

: 샘플 코드를 기반으로

$result = array(); 
foreach($members as $member) { 
    $result[] = array(
     'firstname' => $member['firstname'], 
     'last_name' => $member['last_name'], 
     'job' => $member['job'], 
     'desc' => $member['desc'], 
     'image_url' => $member['image_url'] 
    ); 
} 

업데이트

POST 필드는 arra입니다. ys이므로 동일한 금액의 모든 필드를 기반으로 루프가 있으므로 for 루프는 모든 구성원에 대해 모든 필드가 게시되도록해야합니다.

$fname = $_POST['first_name']; 
$lname = $_POST['last_name']; 
$job = $_POST['job']; 
$desc = $_POST['desc']; 
$photo = $_POST['image_url']; 

$memberdata = array(); 

// we iterate the firstname field and access the same indexes from the other fields. The $i starts with 0 and gets incremented until it iterated over all the firstnames 
for($i = 0; $i < count($fname); $i++) { 
    $memberdata[] = array(
     'first_name' => $fname[$i], // we access the firstname at the current index 
     'last_name' => $lname[$i], 
     'job' => $job[$i], 
     'desc' => $desc[$i], 
     'image_url' => $photo[$i] 
    ); 
} 

var_dump($memberdata); 
+0

감사합니다 @ Tumtum,하지만 그것만 그 값없이 빈 배열을 보여줍니다. 내 게시물을 편집 했으므로 여기에서 어떤 아이디어라도 얻을 수 있습니다. –

+0

확실한 것은 내 대답을 업데이트했습니다! – Tumtum

관련 문제