iT邦幫忙

0

PHP 多維陣列 要宣告特定數量

KUI 2017-12-20 18:35:121551 瀏覽

本人因工作需求,需在PHP宣告一個虛擬資料庫的東西。
$Total_Things [項目1] [項目2] [項目3] [項目4] [項目5]

大家最直接的用法就是 Array()

如果資料少,可能就直接暴力宣告:
$Total_Things = array(
array(
0,
0,
0,
array(0, 0, 0)
),
array(
0,
0,
0,
array(0, 0, 0)
)
);

可是資料一多,可能array需要固定的 50筆。
就要用到SplFixedArray()

$Things = array(
array(),
.
.
);

$ThingsInfo = new SplFixedArray(50);
for($i = 0; $i < 50; $i++)
$ThingsInfo[$i] = $Things;

////////
$Total_Things = array(
array(
0,
0,
$ThingsInfo
),
.
.
);


1 則留言

0
pupuliao
iT邦新手 5 級 ‧ 2017-12-21 16:07:39

php 不需要事先宣告陣列阿
可以直接使用,我沒有使用過 SplFixedArray ,看資料是說 效率比較高,但是要先固定數量

我自己最常見的做法是,用到哪裡 宣告到哪裡,根據需要把資料建構成自己需要的樹

$temp =array();

....

$temp[] = $X;
...

這樣寫$temp 會自己從$temp[0] 開始成長
當然也可以
$temp[$index] = $value 來指定需要的index 名稱

以上做法 也可以用多維陣列上
$temp[$i][] = $val;
這樣也可以

KUI iT邦新手 5 級 ‧ 2017-12-21 17:10:31 檢舉

喔,是我剛好需要先宣告的情況/images/emoticon/emoticon37.gif
謝謝你的留言,讓我多學到一課

pupuliao iT邦新手 5 級 ‧ 2017-12-21 18:09:44 檢舉

我很少會事先宣告好,頂多再使用時,用$temp[0]=="" 這種方式檢查,再塞入預設值

我要留言

立即登入留言