作者Prestense (dreamer)
看板PHP
標題[請益] 動態產生多維陣列
時間Tue May 19 16:36:30 2015
小弟想請教一個問題,程式如下:
$TestArray = ['test1','test2','test3'];
有沒有辦法以TestArray裡的各個值產生出一個多維陣列
EX:$ResultArray['test1']['test2']['test3'];
如果$TestArray = ['test1','test2','test3','test4'];
那產生出的陣列就為 $ResultArray['test1']['test2']['test3']['test4'];
還麻煩各位大大解惑了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.179.20
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1432024592.A.C0F.html
1F:推 localhost: 用while 05/19 16:47
2F:推 localhost: while (list($Key, $Value) = each($TestArray)) { 05/19 17:00
3F:→ localhost: $ResultArray[$TestArray[$Key]]=$TestArray[$Key]; 05/19 17:01
4F:→ localhost: } 05/19 17:01
5F:推 localhost: 不知道是不是你要的結果 05/19 17:03
不是欸,還是感謝你啦!
我想要的是把一維陣列內的值產生出另一個多維陣列
有想過用遞迴,但.....腦袋有點卡住了
※ 編輯: Prestense (220.132.179.20), 05/19/2015 17:10:17
※ 編輯: Prestense (220.132.179.20), 05/19/2015 17:13:54
6F:推 localhost: 不過php 有多維陣列嗎? 05/19 17:20
7F:推 localhost: array($TestArray[$Key]; 改成這樣勒 05/19 17:23
8F:→ localhost: php的多維陣列可能跟你想的不太一樣 只是陣列裡面可以 05/19 17:23
9F:→ localhost: 放陣列而已 05/19 17:23
10F:推 localhost: array($TestArray[$Key]);少一個括號 看裡面的值要放啥 05/19 17:28
11F:→ wenwfy: if(haskey) array=array(key); f(array[key][], key+1); 05/19 23:35
12F:→ wenwfy: 之類的XD 沒驗證 05/19 23:35
13F:推 xdraculax: foreach($tests as $key){$a[$key] = array(); $a =& $ 05/20 01:12
14F:→ xdraculax: a[$key];} 05/20 01:12
經過昨天晚上的放鬆
今天早上腦袋終於清醒了一點
自問自答一下
以下為我的程式:
function MutiArray(&ResultArray,$KeyArray,$Value = '')
{
if($Value != '')
{
$TempKey = array_pop($KeyArray);
$ResultArray = array($TempKey => $Value);
}
if(!empty($KeyArray))
{
$TempKey = array_pop($KeyArray);
$ResultArray = array($TempKey => $ResultArray);
MutiArray($ResultArray,$KeyArray);
}
return $ResultArray;
}
※ 編輯: Prestense (220.132.179.20), 05/20/2015 13:04:58