2013-03-13 2 views
0

웹을 몇 시간 동안 검색했지만 괜찮은 해결책을 찾을 수 없습니다. 조건이있는 특정 장소의 배열에 데이터 추가

이 경우 :

나는 ID가 약간의 VAR 같습니다 특정 배열에 일부 데이터를 추가 할. 어레이

$var1 = "some data"; 
$var2 = "some other data"; 

예 :

array (size=2) 
    0 => 
    array (size=9) 
     'id' => string '1' (length=1) 
     'title' => string 'title' (length=13) 
     'description' => string 'Some Description' (length=21) 
     'function' => string 'Some function' (length=23) 
     'employment' => string 'Some employment' (length=18) 
     'region' => string 'Eindhoven' (length=9) 
     'region_id' => string '1' (length=1) 
     'function_id' => string '1' (length=1) 
     'employment_id' => string '3' (length=1) 
    1 => 
    array (size=9) 
     'id' => string '1' (length=1) 
     'title' => string 'title2' (length=13) 
     'description' => string 'Some Description2' (length=21) 
     'function' => string 'Some function2' (length=23) 
     'employment' => string 'Some employment2' (length=18) 
     'region' => string 'Eindhoven' (length=9) 
     'region_id' => string '1' (length=1) 
     'function_id' => string '1' (length=1) 
     'employment_id' => string '3' (length=1) 

다른 변수는 I의 아이디를

이 추가 될 필요가있는 데이터이다. 조건은 다음과 같습니다.

If ($someid == $array[0][0]['id]) { 
// Add 'ImNewData' => $var1; 
} 

이 예제에서는 2 개의 배열을 사용했지만 최종 디자인에서는 200 개가 될 수 있습니다.

이렇게하려면 가장 적절한 (빠른?) 해결책은 무엇입니까?

+1

서로 내부에 범위가있는 200 개의 배열과 마찬가지로? 그런 경우에는 배열을 인수로 사용하고 배열을 통해 찾고있는 것을 찾기 위해 재귀 함수가 필요합니다. – usumoio

답변

1

내가 알 수있는 것처럼, 새로운 데이터를 배열에 추가하려고하는 것처럼 들릴 수 있습니다. 이 무엇

foreach ($array as $index => $user) { 
    if ($user['id'] == $id) { 
     $user[$index]['example_var'] = $someVar; 
    } 
} 

, 즉 $ 인덱스 요소 인덱스 [0]의 각 요소 withing에 배열을 반복하고, 기억한다. 이 값을 원래 배열 내부에 배치 할 수 있습니다. $ user 값은 foreach 루프가 종료 된 후에 범위를 벗어날 것이므로 원래 배열에 직접 추가해야합니다.

+0

이것이 답이라고 생각합니다! array_push()와 같은 것을 사용하여 PHP에서 길을 잃었습니다. 지금 시도해보기. – Proto

+0

기존 사용자를 수정하는 대신 새 사용자를 배열의 끝에 추가하는 경우에만 배열 푸시를 사용하고 싶을 것입니다. – Sturm

+0

당신이 그의 대답을 삭제하기 전에 그 사람. 하지만 실제로 그는 옳았습니다. 귀하의 답변을 다시 작성 : foreach ($ array = $ $ user) { if ($ user [ 'id'] == $ id) { $ array [$ example] [ 'example_var'] = $ someVar; } } – Proto

관련 문제