| 제목 | php 배열 생성 관련 질문입니다. | ||
|---|---|---|---|
| 카테고리 | PHP | ||
| 글쓴이 | 케케케 | 작성시각 | 2022/03/07 20:16:46 |
|
|
|||
|
안녕하세요배열은 만드는데 잘 안되는 부분이 있어서 질문드립니다. 1번과 같은 배열이 있습니다 실제로 배열은 더 있고위와 같은 구조 처럼 기본적으로 id가 있고 상위id인 pid가있습니다. 1번의 2,3번째 배열 처럼 2,3번의 pid가 197이면해당 값을 id로 갖고있는 배열아래 sub로 추가를 하고싶습니다.
어떻게 하면 될까요?1번이 기존 배열이고완성하고싶은 배열이 2번입니다.
<?php
$arrTmp = array();
$arrTmp = array(
array('id' => 206,
'BoardName' => '일정게시판',
'pid' => 196),
array('id' => '197',
'BoardName' => '테스트게시판',
'pid' => 196),
array('id' => '198',
'BoardName' => '하위게시판',
'pid' => 197),
array('id' => '199',
'BoardName' => '하위게시판2',
'pid' => 197)
);
echo "-----1번 배열---------";
echo "<pre>";
print_r($arrTmp);
echo "</pre>";
$arrTmp2 = array(
array('id' => 206,
'title' => '일정게시판',
'pid' => 196),
array('id' => '197',
'title' => '테스트게시판',
'pid' => 196,
'sub' => array(
'하위게시판' => array
(
'title' => '하위게시판',
'id' => 198
),
'하위게시판2' => array
(
'title' => '하위게시판2',
'id' => 199
)
)
)
);
echo "-----2번 배열---------";
echo "<pre>";
print_r($arrTmp2);
echo "</pre>";
-----1번 배열---------
Array
(
[0] => Array
(
[id] => 206
[BoardName] => 일정게시판
[pid] => 196
)
[1] => Array
(
[id] => 197
[BoardName] => 테스트게시판
[pid] => 196
)
[2] => Array
(
[id] => 198
[BoardName] => 하위게시판
[pid] => 197
)
[3] => Array
(
[id] => 199
[BoardName] => 하위게시판2
[pid] => 197
)
)
-----2번 배열---------
Array
(
[0] => Array
(
[id] => 206
[title] => 일정게시판
[pid] => 196
)
[1] => Array
(
[id] => 197
[title] => 테스트게시판
[pid] => 196
[sub] => Array
(
[하위게시판] => Array
(
[title] => 하위게시판
[id] => 198
)
[하위게시판2] => Array
(
[title] => 하위게시판2
[id] => 199
)
)
)
)
/*
foreach ($arrTmp as $key => $value) {
}
*/
|
|||
| 다음글 | 다른 브라우저는 이상 없는데 ie에서 안되는 경우 (2) | ||
| 이전글 | Ci3 으로 restful api 테스트 중에 오류 문... (3) | ||
|
빛그림
/
2022/03/07 21:39:58 /
추천
0
|
|
케케케
/
2022/03/07 23:19:47 /
추천
0
빛그림 // 아니요 딱 제가 작성한 위에 2번 배열 형태처럼 나와야합니다.
|
|
빛그림
/
2022/03/07 23:22:08 /
추천
0
하위게시판 키가 두개가 될수가 없는데요 ㅡ.ㅡ
|
|
케케케
/
2022/03/07 23:34:45 /
추천
0
하위 게시판의 키가 2개가 될수없다는게 무슨말이죠? 위의 하위게시판 2개는 서로 다른거에요 |
|
케케케
/
2022/03/07 23:44:33 /
추천
0
키는 어차피 title이 들어가는지랑 [] 여기서 0,1,2.... 이런식으로 들어가는지의 차이인데 질문의 요지는 pid에 따라서 하위카테고리 생성 배열을 만들기 위함입니다.
|
|
빛그림
/
2022/03/07 23:55:37 /
추천
0
자세히 보니 하위게시판, 하위게시판2 였네요.
|
|
빛그림
/
2022/03/07 23:58:14 /
추천
0
$arrTmp[3]['sub']['하위게시판'] = ['title' => '하위게시판', 'id' => 198]; $arrTmp[3]['sub']['하위게시판2'] = ['title' => '하위게시판2', 'id' => 199];
이렇게 해보시면... |
|
케케케
/
2022/03/08 00:23:11 /
추천
0
말씀하신게 맞는데 저걸 위에 $arrTmp로 루프를 돌면서 만들고싶은거에요 실제로 저 배열크기가 크고 pid나 id값은 여러가지가있고 키값은 정해진게 아니라 (3을 강제로 넣은거요) 트리구조로 만들고싶은데 잘 안되네요 |
|
빛그림
/
2022/03/08 00:34:29 /
추천
0
for($i=0;$i<count($arrTmp);$i++) {
if ($arrTmp[$i]['id'] == '찾는값') {
$arrTmp[$i]['sub']['하위게시판'] = ['필요한 내용'];
}
}
이렇게 하시면 될거 같은데요. 혹시나 하위계층 까지 반복해서 찾아야 한다면 함수 만들어 쓰시면 되고요. |
|
케케케
/
2022/03/08 19:07:58 /
추천
0
array_key_exist 활용하여 해결하였습니다 감사합니다.
|
$arrTmp[3]['sub'][] = [ '하위게시판' => ['title' => '하위게시판', 'id' => 198] ]; $arrTmp[3]['sub'][] = [ '하위게시판' => ['title' => '하위게시판', 'id' => 199] ]; echo "-----2번 배열---------"; echo "<pre>"; print_r($arrTmp); echo "</pre>";이런걸 원하시는 것일까요?