作者kerash (K.T)
看板PHP
標題Re: [請益] 變數轉陣列
時間Tue Apr 3 23:09:31 2012
※ 引述《o500521 (poet)》之銘言:
: 大家好
: 今天小弟又有個問題了
: ex: $r2= 45.1 55.2 85.9 25.1(不一定是這樣數字 看到時程式跑出來的值)
: 小弟寫...
: $r2a=array($r2)
: foreach ($r2a as $key => $value)
: echo "{$key}=$value \n" ;
: 期望...$key可以 跟著$r2的變數的各數跟著跑
: $key的部分一直保持在0的位置沒有跑 ,請問各位大大們
: 小弟該怎麼做呢!?煩惱好幾天 沒有想法...
直接解題吧,我想真的不是上一個回復的那種想法...
(基本上會用 array 了不可能不懂 array(xx,xx,xx) 的寫法..)
前提猜測原PO有一段程式會跑數據,接著每跑出一段數據就把它串成字串
(當然不排除是抓遠端產生的資料)
所以就會有類似$r2 = "45.1_55.2_85.9_25.1"; (底線是空白)
而原PO的錯誤在於直接把它定義成陣列
也就是
$r2a=array($r2) 這段,這樣直接產生的結果會變成
Array (
[0] => "45.1_55.2_85.8_25.1"
)
若這樣來跑 foreach 也只會產生 45.1....25.1 的字串
key 當然也只會有 0 而已
如果原本的意思是要拆成陣列後取得每個筆數的值,
那就得先確認要怎麼拆分,在此假設是以空白當成區隔
我們可以用 explode () 這個 function
array explode ( string $delimiter , string $string [, int $limit ] )
delimiter 就是要做為拆解的符號,使用空白 " "
string 就是你的字串
limit 代表你要拆多長(假設2就代表出來結果的陣列會有兩筆)
原CODE 修改
$r2 = "45.1 55.2 85.8 25.1";
$r2a = explode(" ",$r2);
foreach($r2a as $key => $value) {
echo "{$key} = $value";
}
...
如果這樣還會錯意思就請原PO快點出來解釋吧 囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.186.193
→ MOONRAKER:php大猜謎!誰會猜對呢? :D 04/04 01:14
→ kuAIpAI:選我選我選我~~~ 04/04 12:55
→ hSATAC:我選你,你回家吃藥好嗎? 04/05 18:09