2017-01-27 1 views
-1

나는 폼에서 제출 된 선택된 체크 박스 (checkbox [$ id])를 기반으로하는 ID 배열을 생성하는 foreach가 있습니다. 로 :... 체크 박스를 선택하면기존 어레이에 값 배열 추가

Checkboxes

1, 2, 3은 지금까지 너무 좋은 양식에서 제출 된 아이디의이

지금은 내 양식에 입력 필드 amount[$id]이 그 행에 대한 금액을 입력하고 결과를 제출할 수 있습니다.이 배열의 값을 id에 추가하려면 amount 값을 추가해야합니다.

[1 => ['amount' => '10'], 2 => ['amount' => '12'], 3 => ['amount' => '5'] // And so on 

내가 병합 시도하고 array_push,하지만 난 그것을 알아낼 수 없기 때문에 나는 그것이 잘못된 일을 할 것 : sult은 다음과 같이한다. 어떤 포인터? 이 같은

+1

'array_combine'을 사용했을 가능성이 있습니까? – Hackerman

+0

절대 사용해 본적이 없습니다. 감사합니다 :) – Hardist

+0

도와 드리겠습니다 :) – Hackerman

답변

1

뭔가 작업을해야합니다 : 배열의 크기가 동일한 경우

$result = []; 
$ids = [1,2,3]; // I suppose it is `$_POST['ids']` 
$amounts = [1 => 10, 2 => 11, 3 => 22]; // I suppose it is `$_POST['amount']` 
foreach ($ids as $id) { 
    if (!empty($amounts[$id])) { 
     $result[$id] = ['amount' => $amounts[$id]]; 
    } 
} 

에만 사용할 수 있습니다 의견 조언으로 array_combine 사용. 배열로 값을 작성하지 않습니다 array_combine -

$ids = [1,2,4]; 
$amounts = [1 => 10, 2 => 11, 3 => 0, 4 => 22]; 
print_r(array_combine($ids, $amounts)); // PHP Warning 

그리고 두 번째 사실 : 그래서 당신이 뭔가를해야합니다. 그래서

$ids = [1,2,3]; 
$amounts = [1 => 10, 2 => 11, 3 => 10]; 
print_r(array_combine($ids, $amounts)); // no subarrays here 
+0

감사합니다.이 배열을 'array_combine'과 함께 사용하려고했지만, 대신이 방법을 사용하고 효과가 있는지 확인하는 것이 더 나은 해결책 인 것 같습니다. – Hardist

+0

laravel과 함께 사용하여 몇 가지 조작으로 매력처럼 작동했습니다. 좋은 해결책! – Hardist