2011-03-25 4 views
1

이 코드를 사용하여 배열 안에 배열을 만듭니다.중첩 된 배열에 항목 추가

array_push($lists[$list], $item); 

을하지만 오류 얻을 :

array_push($lists, $list); 

그리고 나는 중첩 배열에 항목을 추가하려고

Warning: array_push() expects parameter 1 to be array, null given in V:\home\..합니다.

$list$item이 개체입니다.

문제를 해결하는 방법?

답변

2

첫 번째 매개 변수가 null이기 때문입니다.

$numItems = array_push($lists,$list);
array_push($lists[$numItems-1],$item)

+0

다른 해결책이 있습니까? 두 개의 array_push는 서로 다른 함수 안에 있고 foreach와 함께 사용됩니다. 그래서 나는이 방법으로 $ numItem을 사용할 수 없다. – James

+0

인덱스를 신경 쓸 필요가 없다면'$ list [] = $ item;'그리고'$ lists [] = $ list'를 사용할 수 있습니다. 그러나 나는 당신이 정확히 어떤 정보를 얻지 않고서 성취하려고 노력하고 있는지 확실하지 않습니다. –

1

$lists의 말에 $list을 밀어 그것을 키 정수 제공 :

array_push($lists, $list); 

$lists에게 키 문자열에 액세스하려고 존재하지 않습니다

$lists[$list] 

이므로 반환 값은 null입니다. 당신이 솔루션의

array_push(null, $item); 

했던 것처럼 결국, 그것의, 우리는 당신이 떨어져에 밀어에서 $lists에 무엇을하고 있는지 알고 있어야합니다. 그렇지 않다면 :

$pushed_id = array_push($lists, $list) - 1; 
array_push($lists[$pushed_id], $item); 
+0

귀하의 해결책으로 문제를 해결하지 않는 : 당신이 기본 인덱스를 사용하는 가정하면, 뭔가를 할 수 있습니다. $ items [$ list]에 $ item을 푸시해야합니다. 문제는 올바른 방법으로이를 수행하는 방법입니다. – James

+3

@Rooney : 정중하게 배우십시오. ** 당신은 우리에게 carmstrong의 대답에 대한 정보를 제공하지 않았습니다. 그것은 필수적입니다. ** 또한, 당신이 요구하는 것은 불가능합니다. ** 우리가 알고있는 것을 받으면 ** * 당신이 처음부터 국가를 통과시킬 수 없다면 함수를 다른 함수 나'$ list'에 추가 할 수 있습니다 (또는 추가 할 수 있습니다). 내 시간에 문제를 해결하기 위해 마음을 읽지 않아서 사과드립니다. – Jon